Problem/Motivation
The W3C has released Web Content Accessibility Guidelines (WCAG) 2.1 - which introduces new Success Criteria. Our current accessibility gate aims to satisfy WCAG Success Criteria at levels A and AA. This looks like a very significant expansion of WCAG, so we can expect it to affect Drupal in a lot of challenging ways.
The WCAG 2.1 timeline sets December 2017 as the target for a Candidate Recommendation stage, graduating to a full Recommendation in mid-2018.
An update to the WCAG supporting documents ("Understanding WCAG") is also proposed (this is where the longer details, examples, testing notes, and techniques live).
Confirmed new WCAG Success Criteria
As of 24 April 2018 Proposed Recommendation, the following new Success Criteria are confirmed.
Level A:
- 2.1.4 Character Key Shortcuts (A)
- 2.5.1 Pointer Gestures (A)
- 2.5.2 Pointer Cancellation (A)
- 2.5.3 Label in Name (A)
- 2.5.4 Motion Actuation (A)
Level AA:
- 1.3.4 Orientation (AA)
- 1.3.5 Identify Input Purpose (AA)
- 1.4.10 Reflow (AA)
- 1.4.11 Non-text Contrast (AA)
- 1.4.12 Text Spacing (AA)
- 1.4.13 Content on Hover or Focus (AA)
- 4.1.3 Status Messages (AA)
Note that some new Success Criteria are also being introduced at level AAA, but since our target is level AA it is not essential that we address these.
Level AAA:
- 1.3.6 Identify Purpose (AAA)
- 2.2.6 Timeouts (AAA)
- 2.3.3 Animation from Interactions (AAA)
- 2.5.5 Target Size (AAA)
- 2.5.6 Concurrent Input Mechanisms (AAA)
Proposed resolution
Drupal 8 is already leading the way as an accessible CMS. Let's hold on to this achievement :-)
- Discuss the impact, and come up with approaches!
- File child issues for anything we know we must address. (For tracking our progress, please use this issue as the parent and/or the "wcag21" tag.)
- Get off the island, and contribute to the W3C process? The new success criteria are being refined in GitHub issues at w3c/wcag21.
Remaining tasks
- Monitor the progress of the new success criteria, and refine our approaches as they mature.
- It's probably OK to wait until individual criteria have been finalized, before coming up with our approaches.
- Some proposed Success Criteria are proving controversial, so it makes sense to wait for the Candidate Recommendation stage, and implementation consensus in the wider accessibility community. Update: as of the April 2018 Proposed Recommendation working draft, the list of new Success Criteria is finalized (according to the WCAG 2.1 Timeline).
User interface changes
YES. UI and theme changes are expected, e.g.
- SC 1.4.11 Non-text Contrast - some of our focus styles don't pass this.
- Pale blue halo around a blue button
- Mild background colour change when drop-button arrow is focused.
- Some proposed success criteria address cognitive accessibility at A and AA levels. There may be a need to improve some of our UI text to satisfy SC 2.5.3 Label In Name.
@todo: Flesh this out when we know more, especially when it reaches the candidate recommendation stage
API changes
None expected, as yet.
Data model changes
None expected, as yet.
Further Reading
- WCAG 2.1 and Silver (AG): What is Next for Accessibility Guidelines. Includes persona quotes for each of the new success criteria.
Comments
Comment #2
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedComment #3
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedJust putting this into play. I don't know the schedule for bringing WCAG 2.1 to full recommendation status.
Comment #4
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedComment #5
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedSeveral of the new success criteria amount to making our CSS theming more robust for when a user employs built-in browser features like enlarging text, changing fonts, or using Windows' high-contrast themes:
Resize content
Printing
Adapting text
More manual testing will be needed for this.
Pipe dream: I wonder if headless browsers and visual linting tools can simulate text enlarging? I know it's possible to set a viewport size with PhantomJS for instance.
Comment #6
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedTarget size formalizes an established practice for touch screens. We already made this an aspect of the D8 mobile first initiative, so it'll be interesting to see if we already meet the requirements.
Comment #7
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedWe are certainly going to have to update our style guide to meet User Interface Component Contrast (minimum).
Among other things, this will require our focus and hover styles to have strong colours. Our "blue-halo" around buttons currently doesn't meet the proposed SC (as I read it).
Comment #8
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedGood news! I believe our custom tooltips from Shortcut module already satisfy Popup Interference:
Comment #9
mgiffordThis is great! Thanks so much @andrewmacpherson...
It's nice to have a comparison for how these things are changing going forward. I'm trying to draw this outline for the migration from the old 1997 USA legislation to the "new" 2008 WCAG 2.0 guidelines.
https://github.com/mgifford/section508-to-wcag2aa
Ultimately people need to be aware of the changes and keep working for an ever-evolving internet.
Comment #10
mgiffordRelated article WCAG 2.1 – What challenges face accessibility auditors?
Comment #11
yoroy CreditAttribution: yoroy at Roy Scholten commentedThanks for tracking this. When you feel there's enough clarity on what we should work on (esp. relating to Seven theme visual changes) it could be useful to present this during one of the Drupal UX meetings: https://calendar.google.com/calendar/embed?src=jhj7p0u7link8vvjdqqsqr5qt...
Comment #12
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedUpdating the issue summary:
Comment #13
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedAlso, I've been digging through the w3c/wcag21 GitHub issues to get a better feel for what's coming. Lots of parties have provided feedback.
It still feels like early days for this; the really useful stuff will be in the extended "Understanding WCAG" documents. The User Interface Component Contrast (minimum) SC has a quite a lot of this already.
Comment #14
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedComment #15
mgiffordHave to start a WCAG 2.1 tag.
Comment #16
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedThe latest WCAG 2.1 working draft (16 August 2017) is out, and it's a milestone draft because it finalizes the list of new success criteria (which have sufficient consensus).
I'll update this issue soon-ish, but in the meantime here is a nice article summarizing the new success criteria: WCAG 2.1: The final list of candidate Success Criteria is here.
UPDATE: I think I misunderstood the WCAG 2.1 timeline, and the September working draft will finalise the list of new success criteria. The David MacDonald article I linked here includes a few SCs which are due to be included in the September draft, or are awaiting approval. Still, we can start looking for stuff which is actionable and spin out new issues.
Comment #17
mgiffordHave to add these two links from this weekend:
Video from DrupalNorth - https://www.youtube.com/watch?v=FbStEVeQ8g4
David MacDonald's summary - http://davidmacd.com/blog/wcag-2.1-quick-guide.html
Comment #18
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedYes, I'm looking forward to watching that video.
We both found the David MacDonald article; he's been updating it over the last few months. So little has been published about WCAG 2.1 outside of the W3C mailing lists and GitHub issues.
@mgifford I'd like to hear your thoughts about any parts of Drupal core this might impact. In particular:
This is a must-highlight issue for the accessibility core conversation at DrupalCon Vienna. The WCAG 2.1 timeline says we can expect a final list of success criteria about a week before DrupalCon. That's perfect timing, for starting a wider discussion about this Drupal core plan.
I've been thinking about how the WCAG 2.1 timeline relates to the Drupal 8 release cycle, and our accessibility gate. Here's how I imagine our plan:
I'm comfortable with the idea that our the WCAG 2.1 work will be spread over a year. We can aim for enough coverage to raise the accessibility gate over 2 minor releases, say.
Accessibility holds the place of a quality assurance gate in our project governance, rather than a bold-new-features strategic initiative. However I feel the WCAG 2.1 update is sufficiently important that we should consider this plan at the level of the Drupal Core Product Goals issues, because accessibility has become a key product differentiator for Drupal.
Comment #19
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedIssue summary still needs an update, for the new SCs which have reached consensus since April.
Comment #20
mgiffordThanks @andrewmacpherson - this will be an interesting one.
It will be interesting to see what their "Purpose of Controls" definition list is. Trying to take what elements are in Core and standardizing could be interesting. I don't know how big this would be.
I added a tag for visual zoom. There are places we aren't meeting 200% let alone 400%:
https://www.drupal.org/project/issues/search?issue_tags=visualzoom
I don't think we'll have any way to deal with "Graphic Contrast".
Some things like "Adapting Text" really won't be something we can easily review until there are automated tools to check out Core.
I've spent a bit of time thinking about this today. Definitely need to break it down into what we can accomplish in Core.
Comment #21
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedAnother way of looking at the timeline. Let's prioritise the WCAG 2.1 level A changes first...
Comment #22
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedComment #23
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedI've mentioned this WCAG 2.1 plan in the wider "product goals" plan at #2905741-57: *DRAFT* Proposed product goals for Drupal 8.5/8.6(+) core
Comment #24
webchickTalked to the other product managers. Since we pretty much have to do this stuff in order keep our WCAG AA target, I'm moving this to a "major", "active initiative."
Comment #25
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedThanks @webchick! This recognizes a continuing commitment to accessibility in Drupal, and provides important assurance for anyone using (or evaluating) Drupal.
Addressing WCAG 2.1 is now a case of "when, not if". You've seen my musings about the timeline for this plan - are those OK for an active initiative?
The Sept 2017 working draft is out now. As I understand the upstream W3C-WAI roadmap, this month finalizes the new success criteria. From here on the WAI activity us about refining a candidate recommendation and updating the supporting documents (understanding WCAG, techniques, and known failures).
TODO: update the issue summary to reflect the new SC list. I'm conference-hopping right now, so this might have to wait to my post-Vienna catch-up time.
We are now ready to spin-off some task issues for this plan.
I'll be speaking about WCAG 2.1 in the DrupalCon Vienna accessibility core conversation session.
I think this plan deserves a more determined-sounding title now :-)
Comment #26
webchickJanuary 2018 is code freeze for 8.5 (see dates https://www.drupal.org/core/release-cycle-overview), so "Review new level A success criteria, start Drupal issues" at that point sounds a bit late in the game. Ideally, we should try and do as much exploration in advance of code freeze (or, like, now) as we can, I think, in case some of this stuff requires new libraries, new features, new APIs, etc. that can only go in minor releases. I don't know the W3C process well enough to know if we do this exploration at "working draft" stage if we'll end up wasting time chasing rabbits, or if a working draft is pretty darn close to what the final thing will be, though.
However, in general, there's no problem with an initiative taking multiple years (they're major hunks of work :)), especially when there are external factors like with this one.
Let's catch up in Vienna!
Comment #27
yoroy CreditAttribution: yoroy at Roy Scholten commentedWould #2894237: Make core themes more robust in Windows High-Contrast mode be one of the actionable issues within this initiative?
Comment #28
yoroy CreditAttribution: yoroy at Roy Scholten commentedAnother issue where it would be good to clarify how it relates to this one: #2893640: Modernize ARIA usage, in line with ARIA 1.1 and the ARIA Authoring Practices guide.
Comment #29
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedWe have our first reasonably-scoped child issue for this plan!
#2910102: Improve icon colour contrast for WCAG 2.1
Comment #30
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commented@yoroy - The other two issue are pretty broad plans in their own right, and would be worth doing regardless of WCAG 2.1, but they both kinda overlap with this one. So let's say they are related issues, not child issues.
Re: #27 - #2894237: Make core themes more robust in Windows High-Contrast mode
WCAG 2.1 brings in a new success criterion for contrast of UI elements, as well as an broader emphasis on adaptable content in general. WCAG 2.0 only addressed text contrast.
The sort of thing we can do for Windows' High Contrast which relates to WCAG 2.1 is making more robust use of borders. For example see the images in comment 3 of #2894237-3: Make core themes more robust in Windows High-Contrast mode. Update (20 Nov 2017): The relevant WCAG 2.1 success criterion is 1.4.12 User Interface Component Contrast (Minimum). It's not clear if a border around a dialog would be considered "essential" but it could certainly help.
The goal of the Windows High Contrast plan, as I see it, is to make Drupal work well with yet another well-known (and predictable, yay!) piece of assistive technology, rather than just "address WCAG". This is similar to how the Inline Form Errors module makes Drupal much easier to use with a screen magnifier, where the proximity matters.
Re: #28 - #2893640: Modernize ARIA usage, in line with ARIA 1.1 and the ARIA Authoring Practices guide.
This is more concerned with other W3C recs than with WCAG particularly. ARIA is really just a technique that can address various WCAG success criteria, the means rather than the end. The point of the "modernize ARIA" issue is that ARIA is itself moving forward, in terms of the specification, browser and AT implementations, and best practices.
In terms of WCAG 2.1, ARIA can help to address (among others) SC 1.3.4 Purpose of Controls AA and SC 1.3.5 Contextual Information AAA.
Update (18th Oct 2017): using ARIA will be an important technique for addressing 3.2.7 Change of Content (AA) too.
Comment #31
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedUpdating the list of new SCs per the September 2017 WCAG 2.1 working draft. Hopefully this is the final list.
I've organized them by A/AA level here. Also included the new level AAA ones for completeness,even though our accessibility gate won't require us to implement them. It's worth knowing that there are "Target Size" SCs at level AA and AAA, for instance.
Comment #32
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedComment #33
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedWe already have a bunch of issues aimed at extending use of
Drupal.announce()
to cover all of the filterable lists in Drupal core. For example #2805499: Provide screen reader feedback when Views List is filtered by name or description.As far as WCAG 2.0 goes, filtering like this might count as a "change of context" under SC 3.2.2 On Input (level A), but it's kind-of borderline IMO. It does rearrange some content, but doesn't significantly change the meaning of the page.
Looking at the new WCAG 2.1 SC 3.2.7 Change of Content (level AA), it's a clear match for our filterable lists. It sounds like we certainly need to provide feedback for dynamic list filters. The supporting docs ("understanding SC 3.2.7") are still being devised, but the main text defining the Success Criterion is clear enough. It formalizes something that the accessibility community has been recommending for a few years now, which is exactly why we built
Drupal.announce()
in the first place.So I think we can now re-classify these filter-list announcement issues as bug reports under WCAG 2.1. Many of them are close to being ready - so we're already addressing this new success criterion!
I'll set this issue as the parent for these issues, to spread some awareness of WCAG 2.1 amongst contributors.
Comment #34
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedComment #35
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commented@webchick Re: #26,
Me neither - we've certainly started early though. I'm currently looking at it this way:
Drupal.announce()
coverage are goods examples of this, per #33.I've updated the issue summary with the new SCs grouped by priority. Some child issues have been identified.
Comment #36
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commented@mifford - re: #20
The working draft has lists of conventional names for "Purpose of Controls", grouped as buttons/controls, form fields, and links.
I made some comments about these in the w3c/wcagG21 GitHub issues:
Comment #37
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedI've just noticed that as well as the new success criteria, the WCAG 2.1 working draft is also bringing in some errata for existing WCAG 2.0 success criteria.
From the WCAG 2.1 changelog:
Hopefully the WCAG 2.0 stuff will not change much. It seems like these errata are just minor clarifications.
Comment #38
David_Rothstein CreditAttribution: David_Rothstein as a volunteer commentedIt would be nice to tag individual child issues for backport also (where possible/appropriate).
Comment #39
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedThe Dec 2017 working draft is out. This is the "last call" draft, with the Candidate Recommendation scheduled for late January 2018.
Some new SCs have changed name and/or number. One has changed conformance level (to AAA, less urgent). One has been merged into another.
Comment #40
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedThe Plain Language SCs were removed several working drafts ago.
Comment #41
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedThere's a nice introduction to WCAG 2.1 at WCAG 2.1 and Silver (AG): What is Next for Accessibility Guidelines. It includes persona quotes for each of the new success criteria.
Comment #42
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedComment #43
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedWCAG 2.1 reached the Candidate Recomendation stage today. I'll read the change log and update the issue summary here with anything important.
Comment #44
mgiffordIBM's tried to simplify these new guidelines https://www.ibm.com/blogs/age-and-ability/2018/02/08/simplifying-new-wca...
Comment #45
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedThe graphics contrast SC changed it's name AGAIN. Now it's called Success Criterion 1.4.11 Non-text Contrast.
Comment #46
mgiffordComment #47
mgiffordThere were some changes to the WCAG guidelines https://www.w3.org/TR/WCAG21/#b-items-at-risk
Comment #48
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedWCAG 2.1 reached another milestone this week. It's moved from Candidate recommendation to Proposed recomendation.
An important thing about this milestone is that none of the new success criteria are considered "at risk" any more.
"Non-text contrast" is staying! So that means we should now classify some of Drupal's mediocre focus styles as bugs.
A good write-up of the new stuff in this blog article from Deque - WCAG 2.1: What is Next for Accessibility Guidelines. A really useful thing n this article is how it uses personas to illustrate who benefits from the new success criteria.
Some new success criteria names and numbers have changed, so the issue summary needs updated here.
Comment #49
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedI've been thinking about 4.1.3 Status Changes (it went though several other names and numbers in earlier drafts). So far, I think our existing
Drupal.announce()
already conforms to this (emphasis mine):As of May 2018, the Understanding Status Messages supporting docs are still a work-in-progress. In that document, the techniques are about using the role attribute (alert, status, etc) which declare an aria-live region implicitly. Our
Drupal.announce()
doesn't use a role, but instead declares the aria-live property explicitly.The wording of the success criterion says you can do it though roles OR properties, so I think this means Drupal.announce() is already conforming.
Comment #50
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedUpdated issue summary, fixed various name/number changes to match the April 2018 proposed recommendation.
Comment #51
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedThis is a really great article about the new "Label in Name" criterion: Improving web navigation for speech recognition users.
It's given me an idea for how we do a review of our existing codebase for this. Basically, we need to look at ALL instances where we use
aria-label
,aria-labelledby
, andclass="visually-hidden"
to see if there are any discrepancies between the computed accessible name vs what's actually displayed. There are lots of these which will need to be checked, but I think we can do it methodically.Comment #52
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer and at Annertech commentedWCAG 2.1 is now a full W3C Recommendation.
I think we should now officially target WCAG 2.1 for all new features coming into Drupal core. It's very handy timing for us, as we're just kicking off the work for #2957457: Proposal: Modernize the look/feel of the Seven admin theme.
For existing modules, themes, etc, we need to assess what retro-fitting will need to be done. We already have a number of child issues focused on some of the new success criteria. I think having a task issue to assess core for each new SC would be a way to organize this. For example #2958654: Assess JavaScript behaviours for WCAG 2.1 Pointer Cancellation. Some of these might have children of their own, to fix specific instances that are identified.
I'll dig though the final changelog and update the issue summary if needed.
Comment #53
mgifford4.1.3 is now Status Messages (AA) - https://www.w3.org/TR/WCAG21/#status-messages
Comment #54
mgiffordUpdating the doc a bit more.
Comment #55
effulgentsia CreditAttribution: effulgentsia at Acquia commentedAccording to https://gds.blog.gov.uk/2018/09/24/how-were-helping-public-sector-websit..., the UK (and other EU countries?) public sector websites are required to implement (some of? all of?) WCAG 2.1 by September 2019 (for new sites) or September 2020 (for existing sites).
I don't know to what extent the "authoring tools" within Drupal (as opposed to their output) are covered by this regulation, but https://eur-lex.europa.eu/eli/dir/2016/2102/oj states that:
I don't know whether site building tools would be excluded from this as "not content" or included as "content available for a closed group of people" and whether e.g., D8 -> D9 would qualify as the "substantial revision".
So, I'm wondering what this means in terms of timing for changing core's accessibility gate from WCAG 2.0 to WCAG 2.1. E.g., should we do it for Drupal 9.0, or are there parts that must be applied to 8.7 (May 2019 release) or 8.8 (December 2019 release).
For example, maybe we should make it a requirement for the output of Drupal's site building/authoring tools for 8.7 (to be ahead of the September 2019 requirement) and make it a requirement for the building/authoring tools themselves for 9.0 (to coincide with both the 2020 date and the "substantial revision" clause)?
Regardless of when we formally adopt the requirements, +1 to tagging issues with wcag21 and fixing as much as we can ahead of any changes to formal requirements.
Comment #56
webchickIf we change requirements, this needs to be handled akin to deprecating a PHP version; e.g. a date is agreed upon, with input from multiple stakeholders from a variety of user / contributor types, and then we give people 6-12 months to react. (Along with documentation on how to meet the new requirements.)
So given that, I think 8.7 would be too soon. 9.0 is more feasible, and has the advantage of being a major version increase as well, so is a good time to make these kinds of changes. OTOH, from the above timing POV, we could talk about targeting 8.8/8.9, perhaps.
Comment #57
Gábor HojtsyIMHO D8 -> D9 is not a substantial revision of a site, any more than a PHP 5 to PHP 7 upgrade under the hood is. In short I don't think it should count as such unless the site itself is rebuilt substantially. The goal with D9 is that no such substantial rebuilds would be needed so those rebuilds will not be the norm anymore hopefully.
That said, if we want to make new requirements D9 *may* be a good occasion, but not because it would automatically count as a substantial revision.