Planet Drupal

Subscribe to Planet Drupal feed - aggregated feeds in category Planet Drupal
Updated: 15 hours 15 min ago

Drupal Association blog: Q1 2017 Financial Statement Summary

30 August 2017 - 10:07am

The Drupal Association Board is responsible for the Drupal Association’s financial health and as part of their duty, they vote to approve monthly financial statements. The board met on June 28, 2017 at the open board meeting held online. Summit CPA, the Drupal Association’s financial advisors, reviewed the Q1 2017 financial statements, which the board voted to approve afterwards.

For those who could not attend this session, this blog will provide more details about the Q1 2017 Financials, and how we performed against the KPIs that Megan Sanicki, Executive Director laid out in her blog post of June 22, 2017.

As mentioned in previous posts, the Drupal Association has two financial KPIs that we measure against each month:

  • Have a cash balance of 15-30% of Revenue

  • End 2017 with a net income profit of 10%

Below is a summary of how we performed against our KPIs each month in the first quarter of 2017. Overall, we are pleased with our financial progress in this quarter. It shows that we are becoming more sustainable since we made hard choices in 2016 to address our cost structure issues. Cash reserves increased due to DrupalCon Baltimore ticket sales and by selling new programs like the industry page sponsorships and the Charter Customer Supporting Partner Program.






Cash Reserve





Net Income Margin %





This chart below shows how our cash reserves were building in Q1, primarily due to DrupalCon ticket sales. You can see the cash reserves were still low at the start of 2017, as we were still in recovery. Additionally, November through January are our low cash months due to being between DrupalCons.

Net Income Margin will move up and down based on the month’s activities. Overall with the strong January, and the less solid February and March, we are still tracking to our cash forecast.

Monthly Updates

January cash reserves ended at 14% of the recommended cash reserve of 30%.  January’s net income margin finished at 10%.  Revenue had a nice percentage bump due to some unanticipated sales in the digital and industry pages sponsorships.  Additionally, we received a 28k travel grant from Travel Ireland. Thanks Travel Ireland!

February’s cash balance reserve closed in at 22%, due to a strong collections effort on accounts receivables (A/R) by our staff.  The net income margin for February was reduced due to some reclassification of deferred income.  These reclassifications made Febuary come in lower against the cash forecast.  However, with the strong performance of January, the YTD income goal is still on track against our cash forecast.

The cash balance for March exceeded the goal of 30%.  Why? Based on the 2017 forecasted revenue a 30% cash reserve goal is around $1.4M. The March balance of $1.8M was higher than this goal. The jump in cash is due to the strong collections in A/R and timing variances for payments in our A/P. You can see from our A/R tracking that we generally perform better than industry counterparts when it comes to payment on our accounts receivable; as at the end of March we were at 20 days to collect payments.  Additionally, ticket sales from DrupalCon added to the cash balance.

The board meets again on 23/24 September, 2017 at DrupalCon Vienna where they will approve Q2 financials. We will share a similar update to the community after that meeting takes place.

We would not be able to do our mission-driven work without the support and contributions of our community. Contributions come in many forms, through purchase of DrupalCon tickets and event sponsorships, through our Supporters and Members, sponsors, recruiters who post jobs on Drupal Jobs and many other fantastic ways our community supports the Drupal eco-system. We are deeply grateful for everyone who contributes their time, talent, and treasure to move Drupal forward.

Thank you!

File attachments:  AR march.jpeg closing cash march.jpeg
Categories: Drupal

Promet Source: Promet Source, South Florida Water Management District Named A Finalist in 2017 Acquia Engage Awards

30 August 2017 - 8:38am
Promet Source today announced it has been selected as a finalist for the 2017 Acquia Engage Awards in the Public Works category. The Acquia Engage Awards recognize the amazing sites and digital experiences that organizations are building with the Acquia Platform. 
Categories: Drupal

Roy Scholten: One way to find out what’s happening in Drupal

30 August 2017 - 2:09am
30 Aug 2017 One way to find out what’s happening in Drupal

Many channels, but the weekly meetings some teams have are a great way to get started.

It’s a big project, Drupal is. Many different areas that people are working in. The project is it’s own stack of technologies and skills, from low level framework considerations to the last bit of people-facing interface. Composer, Documentation, Accessibility. Each layer in the stack comes with shared considerations about goals, priorities, standards, documentation and getting code written, reviewed, committed.

There are whole teams working on specific feature sets. Media, Workflow, Migrate. But how to find out what’s happening inside each of these areas? PHPUnit, Out of the Box, API-first.

These links all go to long, dense outlines of plans and issues where current state of things and what to work on next is not super obvious. But there is a predictable and reliable way to see and hear people discuss their projects and initiatives. Outside-In, Admin Information Architecture, Progressive Web Apps. Many of the larger initiatives have weekly meetings to discuss progress, status and next steps. Mentoring, Multilingual, Diversity.

Here’s a calendar with all the core meetings on it.

Where and how these meetings are held differs per team. IRC, Google Hangouts, Slack. Many interesting channels on Slack lately, check those out.

These meetings are an easy way to start listening in and getting up to speed. The timing is predictable and you can be sure it’s the experts talking about what is happening and important now. Layout, Security, Frontend components. Don’t let that hold you back to ask questions or share your thoughts. They are nice people and always looking for more people to help out. You are welcome.

Tags meetings drupalplanet drupal
Categories: Drupal

ADCI Solutions: #Drupalchanges movement: share your story and make an impact

29 August 2017 - 8:09pm

Drupal has changed many lives for the best and we want to show newcomers how. Share your story with us!

Record a short video with a hashtag #Drupalchanges and tell what positive changes Drupal brought to your life. Did you change your career? Cool! Met new friends, moved a bigger city? It's huge! 

Post the video on Twitter and/or Facebook until the 7th of September and we will compose your stories altogether so everybody can use the video!

Let's inspire together!

Categories: Drupal

DrupalCon News: You’re coming to Vienna, here are some great things to see and do.

29 August 2017 - 11:20am

We know you’re going to be very busy learning and sprinting, but we hope you take some time and enjoy the incredible history and entertainment Vienna has to offer.

DrupalCon is located near the Prater, and is easily walkable to many incredible attractions. There are a lot of things to do in this city of music, art, culture.

Here are our top picks for things to see in Vienna:

Categories: Drupal

Drupal Modules: The One Percent: Drupal Modules: The One Percent — Display Machine Name (video tutorial)

29 August 2017 - 10:10am
Drupal Modules: The One Percent — Display Machine Name (video tutorial) NonProfit Tue, 08/29/2017 - 12:10 Episode 33

Here is where we seek to bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll investigate Display Machine Name, a module which conveniently displays a field's machine name on view/form displays.

Categories: Drupal

LakeDrops Drupal Consulting, Development and Hosting: How to skip row if parent entity does not exist during a Drupal 8 migration

29 August 2017 - 9:23am
How to skip row if parent entity does not exist during a Drupal 8 migration Richard Papp Tue, 08/29/2017 - 18:23 Drupal 8 lets you perform incremental migrations and update records that have changed since their last migration. If you meanwhile delete such records in Drupal 8 a migration update may break.
Categories: Drupal Get the entity for a route

29 August 2017 - 7:17am

In Drupal 7, we had menu_get_object() to get the object in code for whichever node, term, or whatever entity makes up the current page. But in Drupal 8, that has been replaced, and entities can usually be operated on in a generic way. If you know the type of entity you want, it's pretty simple. But I keep running into different suggestions of how to get the entity object when you don't know its type. Given that D8 allows us to deal with entities in a unified way, I thought there must be a good way! The code of core itself is usually the best place to look for examples of how to do common things.

Categories: Drupal

Deeson: Your Drupal sites are safe with Warden

29 August 2017 - 5:11am

It’s no secret that we’re passionate about open source at Deeson. We’ve written before about why we think businesses should pay their developers to work on open source projects and of course we practice what we preach.

Developers at Deeson get paid time to contribute to open source, and are building some really cool stuff as a result.

Open source estate management

In previous posts we introduced you to Warden, our open source solution for managing multiple Drupal websites. Warden provides a central dashboard for reviewing the status of your sites, and highlights those with issues that need resolving.

As an agency, Deeson works with a broad range of clients and each of their websites or platforms has unique hosting requirements. We needed a central place to maintain oversight of the current status of all the sites we manage.

Upon discovering that none of the existing SaaS options did exactly what we needed, we decided to develop our own solution and give it back to the community.

We’re continuing to develop and support Warden, and we’re pleased to say the first stable release (1.0.0) became available at the end of June! A major new feature included in this release is the ability to report on the third party libraries (e.g. JavaScript and PHP) a site is using.

Know which sites need updating

Warden already reports versions of your Drupal modules and this new feature allows you to identify which sites are using which versions of various add-on libraries, including jQuery, Backbone.js, and AngularJS. This means you can discover which sites you will need to update if there are any security announcements for those libraries.

Setting the library versions

As well as the Warden server upgrade, there is a new release of the Drupal Warden module available for both Drupal 7 and 8 to enable the reporting of third party libraries. 

There are multiple ways to add libraries to a Drupal site – you can do it manually, or use composer, drush make, or the Drupal libraries module. For simplicity’s sake we opted for a manual approach to setting the configuration.

In order for your site to report the specific libraries (JavaScript and PHP) that are being used, you will need to manually specify them in the site’s settings.php file.

For further details about how to configure Warden to report on library versions, check out the module’s README file.

Library security announcements

At present, there unfortunately isn’t a central library of all security announcements for JavaScript or PHP libraries, so Warden can’t report on whether or not a current library version has a security issue.

It’s therefore up to the user to be aware of the various libraries your sites are using in order to know if there have been any security announcements for them. The advantage of using Warden is that you have one central place to look.

There are several online databases which detail security announcements for JavaScript and PHP libraries, though these aren’t complete and many libraries aren’t covered.

Here is a list of resources where you can view security advisories:

In conclusion

Warden allows in-house development teams and agencies to keep track of security releases and version numbers across an estate of Drupal websites stored on different hosting environments, and can save time when managing security rollouts.

The new features in Warden extend to include third party library versions, for which there has never previously been a solid mechanism in place for centrally storing and reporting on.

Are you using Warden successfully? What else does the tool need? Come and let us know on our GitHub issues listing page.

Interested in joining our team? Deeson is hiring!

Categories: Drupal

Mediacurrent: Why Should Companies Support Drupal?

29 August 2017 - 4:43am

I’ve been involved with open source software (mainly Drupal) for the last 10+ years. There has been unquestionable growth when it comes to Drupal adoption. I’ll spare you the war stories, but the decision paradigm has shifted from executives asking, “why should we consider Drupal?” to “why would we want to look at a proprietary, licensed based option and pay seven-figures in just licensing fees alone for ‘closed-code’?”

Categories: Drupal Blog: AGILEDROP: University sites on Drupal

29 August 2017 - 3:06am
School year vary from country to country. Some have already started going to school, in contrast to others, which are still enjoying the holidays. In Slovenia, from where our company comes from, students are catching the last holiday action, because the first day of the school is scheduled for this Friday, 1th September. The same applies to Hungary, while Croatia's first school day is the first Monday in September. On the other hand, in Austria and in Italy, our two remaining neighbours, the first day of school varies between states and it is usually between the 10th September and 20th… READ MORE
Categories: Drupal

ADCI Solutions: How to conduct a website audit: a beginner's guide

29 August 2017 - 2:17am

Do you know what is your website main weakness? Do you know how many broken links it has? How many users actually find your CTA-buttons? Does your content attract or appall website visitors?


Although Drupal is a mature CMS and developers take care of it 24/7, we have to keep an eye on our websites’ well-being, too. We created a check-list on web auditing so that you can find vulnerabilities and eliminate them.


We will examine how it’s going with your website’s design, SEO. content, and few more things.


Get a website’s audit check-list.



Categories: Drupal

Symphony Blog: Translate Content: Link to Content field on Views in Drupal 8

29 August 2017 - 1:36am

In a recent Drupal 8 project, we dealed with a multilingual translation issue: we need to translate the usual "View more" text on the Content: Link to Content field in Views.

After doing some research, we found a workaround like this:

1. Instead of using Content: Link to content, let's add two fields: Content: Path and Global: Custom text.

read more

Categories: Drupal

ThinkShout: The WYSIWYG is a Lie

29 August 2017 - 1:20am

If you’ve ever implemented a WYSIWYG editor in Drupal, one thing that becomes apparent quickly is that the term (What You See Is What You Get) is a complete lie. None of the default theme styles appear in the editor, because the editor shows up in the admin theme. This obviously diminishes its value, and makes custom element styles useless. The good news is that it’s fairly simple to fix - once you know how.

Drupal 8’s default WYSIWYG is CKEditor, and it’s included as a core module with its own API. This is great, because they also added a way to get that default theme front-end code into the admin theme CKEditor. The description of how to manage this leaves a bit to be desired, as all they mention is ‘specifying a ckeditor_stylesheets key in the *.info.yml file’.

Let’s start from the beginning. Say you’ve been working on a D8 site and the intro has an H2, some text, and a call to action button:

That’s great! What does CKEditor show us?

Oh. What I see is certainly not what I get. Let’s start by showing the basic styles in CKEditor. Go to your current default theme (ours is in /web/themes/custom/) and find your Open it in your favorite editor and you’ll see something like this:

name: My Theme Name type: theme description: A base theme for My Site package: Other core: 8.x base theme: classy regions, etc...

Now add the ckeditor_stylesheets: key and the target file right below the core: 8.x line, like so:

... package: Other core: 8.x ckeditor_stylesheets: - css/ckeditor.css

If there’s something already under core: 8.x just put the CKEditor lines below it.

Next you have to actually add a file there! Go to your theme’s /css/ directory and add an empty ckeditor.css file next to the site’s style.css.

Now, you could just tell CKEditor to load all of the site CSS - but that would be overkill for the poor little iframe. It’s better to just find the vanilla CSS styles you need in your style.css file and copy them over. In our case it’s only about 160 lines of CSS - the default styles for the site, plus some rendered Sass mixins for the button. How does our WYSIWYG look now?

Bazinga! What a difference.

Hmm, but our button is missing its styles because we haven’t configured the CKEditor for that yet.

Go into the Drupal configs to set that up at /admin/config/content/formats and click ‘configure’ for the CKEditor text format you want (Full HTML, etc).

If you don’t have ‘Styles’ in the ‘Active Toolbar’, add it by dragging it in. It looks good next to ‘Format’, and has a similar behavior:

Then scroll down to the ‘Styles dropdown’ tab and add the appropriate markup and class for the button.

In our case we want to turn an anchor link (a) into a button by adding a .button class, so we use a.button. The text after the pipe (|) is what will appear in the ‘Styles’ dropdown.

Finally, make sure you’ve added that markup to the ‘allowed HTML tags’ section if you’re adding it to a restricted markup configuration:

Important Note: style options won’t show up in the Styles dropdown unless you have clicked/selected an eligible piece of markup - in our case the a tag - in the CKEditor window. So in our example, we’d have to click on ‘read more’ before we click on the Styles dropdown.

As long as you have a.button styles in ckeditor.css, it should work right away. (Well, after a cache clear. It’s Drupal.)

And that’s it! From here you can continue to add styles to ckeditor.css, and to the Styles dropdown in the Drupal ‘Text formats and editors’ admin.

The WYSIWYG is no longer a lie!

Categories: Drupal

Hook 42: August A11y (Accessibility) Talk Review

28 August 2017 - 9:43pm

Attention to web accessibility (a11y) is one of the most important tasks developers have to ensure an internet that is diverse and inclusive.

This month’s A11y Talk featured Damien McKenna from Mediacurrent. First he discussed the significance of open source contributions and the importance of contributing back to Drupal, then he led us through a live demo of the patch process on

Categories: Drupal

Disruptive Library Technology Jester: Adding Islandora Viewers Capability to Basic Image Solution Pack

28 August 2017 - 6:15pm

Putting this here because I didn’t see it mentioned elsewhere and it might be useful for others. Thinking about the history of the Islandora solution packs for different media types, the Basic Image Solution Pack was probably the first one written. Displaying a JPEG image, after all, is — well — pretty basic. I’m working on an Islandora project where I wanted to add a viewer to Basic Image objects, but I found that the solution pack code didn’t use them. Fortunately, Drupal has some nice ways for me to intercede to add that capability!

Step 1: Alter the /admin/islandora/solution_pack_config/basic_image form
The first step is to alter the solution pack admin form to add the Viewers panel. Drupal gives me a nice way to alter forms with hook_form_FORM_ID_alter().

/** * Implements hook_form_FORM_ID_alter(). * * Add a viewers panel to the basic image solution pack admin page */function islandora_ia_viewers_form_islandora_basic_image_admin_alter(&$form, &$form_state, $form_id) { module_load_include('inc', 'islandora', 'includes/solution_packs'); $form += islandora_viewers_form('islandora_image_viewers', 'image/jpeg', 'islandora:sp_basic_image');}

Step 2: Insert ourselves into the theme preprocess flow
The second step is a little trickier, and I’m not entirely sure it is legal. We’re going to set a basic image preprocess hook and in it override the contents of $variables['islandora_content']. We need to do this because that is where the viewer sets its output.

/** * Implements hook_preprocess_HOOK(&$variables) * * Inject ourselves into the islandora_basic_image theme preprocess flow. */function islandora_ia_viewers_preprocess_islandora_basic_image(array &$variables) { $islandora_object = $variables['islandora_object']; module_load_include('inc', 'islandora', 'includes/solution_packs'); $params = array(); $viewer = islandora_get_viewer($params, 'islandora_image_viewers', $islandora_object); if ($viewer) { $variables['islandora_content'] = $viewer; }}

I have a sneaking suspicion that the hooks are called in alphabetical order, and since islandora_ia_viewers comes after islandora_basic_image it all works out. (We need our function to be called after the Solution Pack’s preprocess function so our 'islandora_content' value is the one that is ultimately passed to the theming function. Still, it works!

Categories: Drupal

OSTraining: How to Display Locations on a Map in Drupal 8

28 August 2017 - 4:12pm

The Geolocation Field Module allows us to store geographical locations (e.g. addresses) as value pairs (latitude, longitude). These values can be rendered in a map with the help of a map marker.

Many map markers in a map are useful in a wide variety of cases, for example to show graphically different offices of a bank in a city or to show the cities/countries of a concert tour of your favorite band. The possibilities are endless.

In this tutorial we are going to learn how to show the markers in a map of four tourist Attractions in New York City using the Geolocation Field Module and Views.

Categories: Drupal

Palantir: Accessibility in Drupal 8

28 August 2017 - 1:12pm
Accessibility in Drupal 8 brandt Mon, 08/28/2017 - 15:12 Michael Dickey Aug 29, 2017

Can you see the Drupal 8 logo above? Accessibility standards could help make this image equally useful to all users.

In this post we will cover...
  • What accessibility is
  • Why accessibility is important
  • What improvements Drupal 8 has made around accessibility
  • What Palantir does to make sure our sites are accessible

We want to make your project a success.

Let's Chat.

My first real experience with web accessibility came when I joined the federal government as a developer during the executive branch’s broad adoption of Drupal. Until that point, I’d been working on smaller projects for my own company and several other clients. While I was familiar with alt text and design concepts dealing with contrast, my knowledge of accessibility didn’t extend very far beyond that.

If I’m being completely honest, I’m embarrassed to say that I hadn’t really put much time into thinking about how users with disabilities interacted with the sites I was creating. My thoughts (and many late nights) largely centered around learning as much as I could that would help me solve my immediate business needs. What I didn’t realize was that my ignorance was not only hurting my business, but I was missing a vitally important piece of development knowledge.

What is Accessibility?

Generally speaking, accessibility refers to ensuring that people with disabilities have the same access (both physical and virtual) as others. Everyone is familiar with the benefits of providing physical improvements like ramps to building entrances and at sidewalk crossings, expanding hallways, requiring elevator doors to remain open for a certain period of time, and adding raised surfaces near the rails on metro and subway platforms. Web accessibility refers specifically to similar best practices put to use for a more inclusive environment online.

Many people generally think of screen readers and visual disabilities when it comes to accessibility, but the range of topics that it covers is larger than that and includes more than just disabilities. For example, needing sufficient contrast so someone can see a site on their phone on a sunny day. That's an accessibility use case for sighted users just as much as it is for someone with deteriorated vision. Similarly, the ability to pause autoplay videos is an accessibility feature for those with neurological issues, but is also a feature for anyone that gets motion sickness.

There are guidelines provided as a goalpost to achieving appropriate levels of accessibility that are a great resource for anyone looking to ensure that their site is as useful as possible to as broad an audience as possible. WCAG 2.0 (you may have heard it called “wick-ag”) is generally accepted as the standard to measure against when talking about information you’re presenting to users on a website.

These were developed by the World Wide Web Consortium or W3C and published in 1999 as version 1.0 with 2.0 being published in 2008. The federal government began using WCAG 2.0 in measuring compliance with their requirements, known as 508 or Section 508, in early 2017, though several agencies have been using them as a reference point for years. Section 508 is an amendment to the Rehabilitation Act of 1973 that was passed as the version we know today in 1998. Interestingly, it was originally passed in 1986 showing a lot of forward thinking by the government, but it lacked enforceability. I have had the pleasure of working with many government employees that feel strongly about and take to heart the spirit of 508 compliance. It’s an attitude that I have carried with me beyond my time with them.

In addition to the above, individual companies often have a set of guidelines that address accessibility for their sites as well. W3C has also published several other standards and guidelines that focus on various aspects of online interaction to include Authoring Tools (ATAG), web browsers and media players (UAAG), and Accessible Rich Internet Applications (ARIA) which I’ll touch upon again later.

Why Bother?

Many times people find themselves in a position where they need to defend the need for adopting accessibility standards. This can be a result of various factors including budget (just trying to get an MVP out), perceived lack of time, lack of knowledge/not recognizing it as even being something to think about, or difficulties around training editorial staff and content creators. If you find yourself in that position, here are a few points to help people understand the importance of addressing web accessibility.

Disabilities affect users’ capacity to interact with your site in many ways. This can include visual, mobility, auditory, cognitive or intellectual and neurological impacts. According to 2010 U.S. Census data, 19% of the population has a disability. That is a lot of people to be ignoring if you’re not willing to discuss ways of improving accessibility at your organization. It’s unclear exactly how many of that 19% have disabilities that directly impact interaction with a website (i.e., a mobility disability affecting the foot may not have an impact), but with that percentage equaling 57 million people, it is safe to assume that there are more people with disabilities using your site than you might initially think.

What is also not included in Census data is those disabilities that are temporary. For example, a user with a broken hand in a cast will have difficulty on a site that requires use of a mouse. There are a number of tools your users may be implementing when they come to your site including screen readers, braille terminals, screen magnifiers, speech recognition software, keyboard overlays and keyboard shortcuts. If ignored, your site may respond in unintended ways when visited by a user implementing one of those tools.

An added benefit to addressing accessibility comes in the way of SEO (search engine optimization). Many of the best practices around developing for accessibility have a direct correlation to best practices of developing for SEO. Things like semantic markup and site maps are used by some of the assistive technologies mentioned above. Having them present allows for search engines to use that same information to better index your site which improves your chances of achieving favorable rankings in searches. It is my personal belief that there will come a time that search engines will penalize sites for not being accessible in a similar manner to recent decisions around mobile and use of SSL certificates (https).

A negative impact of not addressing accessibility that I’ll touch on briefly has to do with legal ramifications. If you’re running a government site or receiving significant government funding, there is the aforementioned 508 compliance, but what about those in the private sector? The Americans with Disabilities Act has recently been cited in lawsuits claiming that users’ rights were violated based on the fact that “No individual shall be discriminated against on the basis of disability in the full and equal enjoyment of the goods, services, facilities, privileges, advantages, or accommodations of any place of public accommodation by any person who owns, leases (or leases to) or operates a place of public accommodation.” For any site that can be proven to be a “place of public accommodation” this should be given serious consideration.

Lastly, the reason for worrying about accessibility is that it’s the right thing to do. As site owners, designers and developers it is our responsibility to make the web a better place. For the internet to have sites on it that exclude certain visitors is contrary to its purpose. I find (as someone that does not have a disability affecting my use of the internet) it can sometimes be difficult to keep this at the top of my mind. This is why I suggest thinking of it from the point of view of being with a loved one, sibling, or child with a disability while they interact with your site and imagine what sort of experience you would want them to have.

Drupal 8 and Accessibility

Drupal 8 has made some significant improvements around accessibility to ensure that your site starts with a strong foundation. I’ll list some of them here.

Required Alt Text

Alt, or alternative, text refers to the words used to tell users what is in the content of an image. It’s usually not rendered in the display of the page, but used by tools like screen readers. This is set to required by default in D8. Even having it set to required still does not remove the need for proper training of your content creators to ensure that the text provided is an appropriate description of the image taking into account its intended purpose and not just a word or two to satisfy the required field. A great presentation on alt text for further reference can be found at

Semantic Elements

Divs and spans are generic HTML tags used to define elements on a page. Historically they’ve been used to define most every element with the exception of things like images which have had their own tag. In HTML5, semantic elements allow developers to assign a name that fits the purpose of a particular element, and Drupal 8 has taken advantage of this providing a common element name for users and machines to know what to expect when presented.

Instead of one developer assigning a class of “nav” to a navigation div and another assigning an id of “navigation,” use of semantic elements allow for “nav” to replace div or span. That way a screen reader can know to present this to the user in a way that makes sense instead of it sounding like a part of the content. Some other element names include , , and , and . This is a great example of when SEO overlaps with accessibility because search engine crawlers will also use these same element names to understand your pages.


Another W3C published set of standards, WAI-ARIA (Web Accessibility Initiative – Accessible Rich Internet Applications) deals with making certain types of content available to all users. Drag and drop functionality is a great example of this. Drupal 8 has followed WAI-ARIA guidance to make these more understandable to assistive technologies.

Aural Alerts

A JavaScript method (Drupal.announce) in D8 takes advantage of the above ARIA compliance and presents screen readers with a string to be read aloud to the user. To understand the need for this it is helpful to understand that a screen reader is only “looking” at one part of a page at a time, so if a change happens on the page that a user would be expected to see, the screen reader would typically be unaware of it. This allows for changes happening on the page to be made known to a user using a screen reader.

Constrained Tabbing

Various users may use the tab key on their keyboard to move around on your website’s page instead of using a mouse. Drupal 8 introduced another JavaScript feature called tabbing manager that allows for control over where the user can tab into. Think of this in context by imagining how tabbing would work when there is an overlay on the page if it wasn’t constrained to within the overlay.

Form Errors

In Drupal 8 there is an option to turn on a feature to improve accessibility related to the display of form errors. By default form errors are presented after submission at the top of the form with fields that failed validation highlighted in red. To understand the difficulty this presents, it is important to think of a screen reader that can only present what is on the screen in the order presented without contextual knowledge. In that case the user will get the error (e.g., “This field does not allow any special characters”) without knowledge of which field is being referred to, as the screen reader will not announce that the offending field is highlighted.

Colorblind users could also miss the highlighting of the field. You can, and should, use better form validation error verbiage to help with this, but putting the error inline with the field it relates to helps to provide context. There were a number of issues with this feature when D8 was released initially, but most of these have been worked out (including all of the “must have” issues) so please do some research to determine where it stands at the time you consider implementing it. To see if there are any issues still remaining that could affect your decision you can follow the issue at

CSS Display Options

Work has gone into reducing the use of “display:none;” in Drupal 8 as its use hides content from screen readers. Reasons for not using “display:none;” can be hard to guess with the usual response being “if I’m hiding content from rendering, why would I care if a screen reader can find it?”

This becomes problematic when content is hidden for treatments like accordions where a user accessing your site with a screen reader would have no way of knowing the content existed. To help with this, D8 has adopted four new display classes: (1) hidden, (2) visually-hidden, (3) visually-hidden.focusable and (4) invisible, and each have specific behaviors related to hiding an element visually as well as from screen readers.

For all of these reasons and more, using D8 in your project should provide you with a great starting point to build a site that benefits all users equally. Accessibility has clearly been given a lot of attention. Keep in mind that as with any starting point, it will still be possible for missteps and shortcuts to be taken that can reduce your site’s accessibility over time, so diligence is required.

Palantir and Accessibility

Palantir has been building accessible websites since the standard was introduced. For the majority of our clients, WCAG 2.0 level AA compliance is contractually obligated. Our automated and manual testing tools adhere to the WCAG 2.0 level AA standard, which is what our best practices and heuristic evaluations of design also follow.

We employ many of the tools, practices, and techniques documented in The A11y Project in order to design and build accessible products for our clients. Most of these tools and techniques are based on the WCAG 2.0 level AA standard (at a minimum). We ensure that the code we develop adheres to accessibility standards by employing a three-tiered approach to accessibility assurance:

1.) Following best practices in accessible design through:

  • Heuristic consciousness of accessibility in design, including (but not limited to):
    • Selecting colors for text that have a high contrast ratio with the background
    • Styling interactive elements, such as links, using a variety of indicators rather than relying on color alone
    • Including notifications and feedback for interactions such as an error message, or a success confirmation
    • Designing large links, buttons, and controls
    • Creating unambiguous and consistent navigation options
    • Composing clear layouts with organized content
  • Chrome accessibility extensions
    • Chrome Accessibility Developer Tools
    • Color Contrast Analyzer
    • WAVE toolbar in Firefox

2.) Performing automated, continuous code testing to identify any accessibility issues in the front-end code

3.) Testing individual, rendered pages of the final product using Tenon, which can assess that the code and content entered in the CMS are producing rendered pages that ultimately meet accessibility standards (upon client approval and on a project-by-project basis)

  • There is a Drupal module for Tenon that can be used, though it requires the client to create an account with Tenon that has a monthly cost based on the number of API calls made from the client site to Tenon
  • There is also a WordPress plugin for Tenon as well, which also requires a paid Tenon account
What Can You Do?

There are a lot of ways that you can help to ensure your organization’s success in terms of making your online resources accessible. The first is in the performance of an audit to determine where things stand currently. There are a lot of tools available for this and many of them are free to use. Tenon, WAVE, HERA, and W3C’s Validator are some. Running these will return a lot of feedback and issues. Do not get overwhelmed and throw up your hands. Compile them into a single spreadsheet or tracker and start prioritizing them based on what is achievable given your current resources (example).

A single audit is also not going to be enough to ensure your site is accessible. Over time, as new code is added and content creators add content, things can change. Regularly scheduled audits will help you surface any issues. There are also services that will connect you with groups of users with a variety of disabilities that can test your site for you.

Content creators are responsible for a lot of the work it takes to keep your site compliant. Drupal does a great job of creating a solid foundation, but if training isn’t provided to content creators there will still be issues. An example of this is providing poor alt text even if it’s required as mentioned above. Another area that is often overlooked is proper use of heading order. Proper use and nesting of heading tags (e.g., , , etc.) will allow for users to better understand the organization of content on a page. For more information on this you can reference W3C’s guidance.

Another way to help is to simply speak up. Remediation of issues is always more difficult than including accessibility from the start of a project. During planning and design be the voice that keeps accessibility on the table. Ask questions when new functionality or design elements are introduced. You may be the only one asking these questions at first, but you will find that over time it will become engrained in others as well so that accessibility planning is not an afterthought, but simply part of the process. Compliance to accessibility standards and best practices doesn’t require a lot of additional technology or even skill. It just needs attention.


Hopefully this has helped you gain a better understanding of web accessibility, why it matters, and why Drupal 8 accessibility improvements will help you create sites that are equally useful to all users. This has certainly not been a comprehensive deep dive into the topic, but it is meant to provide you with enough knowledge to feel comfortable bringing accessibility up in conversations at your next planning meeting or to get you thinking about it while you build your next module.

Please contact us to discuss how Palantir can help you use Drupal 8 to improve accessibility on your next project.

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.
Categories: Drupal

Chapter Three: How to Alter Entity Autocomplete Results in Drupal 8

25 August 2017 - 9:38pm

Sometimes you might want to display additional data in the autocomplete results, for instance add content language next to the title, or display entity type or any other related data. In this blog post I will demonstrate how to alter suggestions in autocomplete fields in Drupal 8. The project is available for download from github, see the link at the bottom of the page.

Here is the module structure I will be using:

Categories: Drupal

Sudhanshu Gautam | Blog: GSoC 2017 | Week 12: Port Vote Up/Down

25 August 2017 - 3:14pm
GSoC 2017 | Week 12: Port Vote Up/Down sudhanshu Sat, 08/26/2017 - 03:44
Categories: Drupal