Accessibility in Drupal 8
Can you see the Drupal 8 logo below? Accessibility standards could help make this image equally visible to all users.
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.
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 https://www.slideshare.net/whitneyq/writing-great-alt-text-38937551.
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 <article>, <section>, <figure> and <figcaption>, <footer> and <header>. 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.
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 drupal.org.
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
- Gulp Accessibility is built into our toolset.
- Gulp Accessibility uses AccessSniff and HTML Codesniffer to grade the site’s accessibility using the different levels of the WCAG 2.0 standard.
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., <h1>, <h2>, 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.
We want to make your project a success.