This is going to be a tracker for all issues covering (not just obeying) WCAG 2.0 conformance, sorted by WCAG 2.0 norm.
This tracker should help us achieve the stated goal of WCAG 2.0 and ATAG 2.0 level AA conformity for Drupal core.

Please help adding relevant, preexisting issues to this list or create. You can also create a sub-meta-issue for a guideline, if you sufficiently embraced it and continue to care of it - too many stale issue stubs would end up being unmanageable!

WCAG 2.0 Guidelines

1 Perceivable

1.1 Text Alternatives

#2034999: [meta] Comply with WCAG 1.1: Text Alternatives
#952964: String stripped from title and alt attribute if contains a colon
#1849712: Add theming template and prepare logic for rendering icons

1.2 Time-based Media

1.2.1 (A) Audio-only and Video-only (Prerecorded)
1.2.2 (A) Captions (Prerecorded)
1.2.3 (A) Audio Description or Media Alternative (Prerecorded)
1.2.4 (AA) Captions (Live)
1.2.5 (AA) Audio Description (Prerecorded)
1.2.6 (AAA) Sign Language (Prerecorded)
1.2.7 (AAA) Extended Audio Description (Prerecorded)
1.2.8 (AAA) Media Alternative (Prerecorded)
1.2.9 (AAA) Audio-only (Live)

1.3 Adaptable

1.3.1 (A) Info and Relationships

#1638078: [meta] Simplify complex form elements where possible
#864006: Improve table semantics by adding scope or headers/id attributes
#1734716: File field form label has incorrect id in @for attribute
#933004: Test that all form elements have a title for accessibility
#1918994: Improve Datetime and Daterange Widget accessibility
#504962: Provide a compound form element with accessible labels
#514008: Allow HTML headings in default Filtered HTML text format
#1106344: Taxonomy term reference field headers always should be rendered with a HTML header (invisible or not)
#1966990: Forms API drupal_process_states() hidden content is not visible to screen readers
#2192419: Use a WCAG-compliant fieldset (fieldgroup) for #type radios/checkboxes

1.3.2 (A) Meaningful Sequence
1.3.3 (A) Sensory Characteristics

1.4 Distinguishable

1.4.1 (A) Use of Color

#890362: Links should not be indicated by color only
#1910350: Simpletest relies on color to convey failed tests

1.4.2 (A) Audio Control

#1872206: Improve CKEditor toolbar configuration accessibility

1.4.3 (AA) Contrast (Minimum)

#134359: Warn users about contrast problems when using the color module
#1858206: Dropbutton background with gradient does not meet WCAG AA standard
#134359: Warn users about contrast problems when using the color module
#740756: Ensuring Proper Color Contrast for Seven
#2053145: Link color does not meet WCAG AA contrast ratio in header

1.4.4 (AA) Resize text
1.4.5 (AA) Images of Text
1.4.6 (AAA) Contrast (Enhanced)
1.4.7 (AAA) Low or No Background Audio
1.4.8 (AAA) Visual Presentation
1.4.9 (AAA) Images of Text (No Exception)

2.1 Keyboard Accessible

2.1.1 (A) Keyboard
2.1.2 (A) No Keyboard Trap
2.1.3 (AAA) Keyboard (No Exception)

2.2 Enough Time

#2036311: [meta] Comply with WCAG guideline 2.2: Enough Time

2.3 Seizures

#2036293: [meta] Comply with WCAG guideline 2.3: Seizures

2.4 Navigable

#1854030: Add hint to translation settings page when tables appear off screen
#1645420: Use @aria-describedby for fieldset descriptions
#1904912: Display updating Javascript triggered in Format string of date formats interfers with keyboard navigation
#1921218: Deal with tabbing elements that are added to the page after it has been constrained
#1101600: Users need to be able to select from list when adding menu items to a menu

2.4.1 (A) Bypass Blocks

#1402250: Allow modules to classify blocks when defining them, so WAI-ARIA roles can automatically be added in the theme layer

2.4.2 (A) Page Titled
2.4.3 (A) Focus Order

#1913086: Generalize the overlay tabbing management into a utility library

2.4.4 (A) Link Purpose (In Context)

#1136680: #type 'more_link' - previously theme_more_link() - should have more context

2.4.5 (AA) Multiple Ways
2.4.6 (AA) Headings and Labels

#1932074: Tags Includes Label which isn't Associated with an Input Form

2.4.7 (AA) Focus Visible

#1993574: Add focus styling to all interactive elements

2.4.8 (AAA) Location
2.4.9 (AAA) Link Purpose (Link Only)
2.4.10 (AAA) Section Headings

#514008: Allow HTML headings in default Filtered HTML text format

3.1 Readable

3.1.1 (A) Language of Page
3.1.2 (AA) Language of Parts

#1323338: [meta] Conform to WCAG Success Criterion 3.1.2: Language of Parts
#1854046: Add "changed" hints to translation settings page
#1855036: ARIA and accessibility improvements in entity (content) translation settings page

3.1.3 (AAA) Unusual Words
3.1.4 (AAA) Abbreviations
3.1.5 (AAA) Reading Level
3.1.6 (AAA) Pronunciation

3.2 Predictable

3.2.1 (A) On Focus
3.2.2 (A) On Input
3.2.3 (AA) Consistent Navigation

#1913086: Generalize the overlay tabbing management into a utility library
#1811240: Improve "password matches" and "password strength" accessibility
#1079010: The secondary links heading, "Secondary menu", is wrong
#1848940: When enabling or disabling a View, don't move the cursor to the top of the page
#1824636: Do not move the cursor to the top of the page on ajax calls

3.2.4 (AA) Consistent Identification
3.2.5 (AAA) Change on Request

3.3 Input Assistance

3.3.1 (A) Error Identification

#742344: Allow forms to set custom validation error messages on required fields
#1797438: HTML5 validation is preventing form submit and not fully accessible

3.3.2 (A) Labels or Instructions

#314385: Make position of #description configurable via the API

3.3.3 (AA) Error Suggestion
3.3.4 (AA) Error Prevention (Legal, Financial, Data)
3.3.5 (AAA) Help
3.3.6 (AAA) Error Prevention (All)

4.1 Compatible

#2035139: [meta] Comply with WCAG guideline 4.1: Compatibility

(see latest version of: Understanding WCAG 2.0)

See also:

#2034909: [meta] Track progress in ATAG 2.0 conformance

Comments

pancho’s picture

Issue tags: +Accessibility, +atag, +WCAG

Adding tags.

pancho’s picture

Issue summary: View changes

add A - AAA level tag to each guideline and strikethrough all AAA level guidelines

pancho’s picture

Issue summary: View changes

add link to the ATAG 2.0 tracker

pancho’s picture

mgifford’s picture

This is great. Let's have this discussion here for D8 in this tread.

I had started a list for D7 a while ago here that 'm just including for reference https://groups.drupal.org/node/18595

Also, for D7 there was a discussion here that might be worth reviewing https://drupal.org/node/947988

pancho’s picture

@migifford:
Thanks! Yes it's too bad we don't have g.d.o's possibility here in the issue queue (or at least the docs area) or the other way around, but we might come up with some kind of tightly integrated combination of issues in the queue and documentation somewhere else.
Finally the queue is where the actual work happens. Also, even if we got everything evaluated and fixed, we need to track and fix regressions.
So, as you said in the other issue, this is just a starter that needs to change and improve and turn into something better.
I believe we also need some concise explanation about what WCAG is and what ATAG is, how they're different and how they're connected, and which applies to what.

pancho’s picture

mgifford’s picture

Issue summary: View changes

focus order

mgifford’s picture

Issue summary: View changes

color & focus

mgifford’s picture

Issue summary: View changes

us of images with links

mgifford’s picture

Issue summary: View changes

Consistent navigation

pancho’s picture

Issue summary: View changes

Replaced individual "language of parts" issues by meta: #1323338: [meta] Conform to WCAG Success Criterion 3.1.2: Language of Parts

pancho’s picture

pancho’s picture

Issue summary: View changes
mgifford’s picture

Issue summary: View changes

Updated issue summary.

mgifford’s picture

Issue summary: View changes

Updated issue summary.

mgifford’s picture

Issue summary: View changes

adding 999338

pancho’s picture

Issue summary: View changes

reword notice

pancho’s picture

Issue summary: View changes

Remove individual issues that are covered in a sub-meta.

pancho’s picture

mgifford’s picture

Issue summary: View changes

more lists

mgifford’s picture

Issue summary: View changes

more issues.

pancho’s picture

mgifford’s picture

Issue summary: View changes

update including #314385: Make position of #description configurable via the API as we were editing the same file at the same time.

mgifford’s picture

mgifford’s picture

Issue summary: View changes

adding 1849712

mgifford’s picture

Issue summary: View changes

error identification 1797438

mgifford’s picture

Issue summary: View changes

use of color 1910350

mgifford’s picture

Issue summary: View changes

Updated issue summary for 1966990

mgifford’s picture

Issue summary: View changes

adding 1904912

mgifford’s picture

Issue summary: View changes

Updated issue summary adding 1921218

mgifford’s picture

Issue summary: View changes

adding 1101600

dead_arm’s picture

Issue summary: View changes

Add Seven color contrast issue to list.

idebr’s picture

Issue summary: View changes

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

edurenye’s picture

Using the admin theme I found 3 WCAG errors:
1. The navigation landmark must only contain region or search landmarks.
2. All content must be contained in landmarks (This is the link to main content, another accessibility rule, that must be on top, but according to this, I think it should be inside a div or something).
3. Text content must exceed Color Contrast Ratio (CCR) of 3.1. The navigation tabs in the admin theme do not apply this.
And 1 warning:
1. First landmark heading H2.

mgifford’s picture

@edurenye can you give us a bit more. Of the 3 issues you found, did you search to see if there was already an open issue for them?

How did you find the errors? Was this through an automated test?

Can you let us know what piece of WCAG they violate?

Just trying to take this comment and break it down into separate issues so that they can be replicated & resolved.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

andrewmacpherson’s picture

Re: #6

These sound like they are recommendations from some testing tool. As @mgifford says, I'd like to know which one.

1. The navigation landmark must only contain region or search landmarks

This isn't a WCAG requirement, and it isn't mentioned in the ARIA 1.0 recommendation (at least not in the landmarks section). It would be good to know which landmarks it's complaining about, to see if there is anything unusual going on. It's possible we have some quirky pattern which could be improved.

2. All content must be contained in landmarks

I think this is a great idea, and I would love us to arrange things this way. However it's not a failure of WCAG as such.

3. Text content must exceed Color Contrast Ratio (CCR) of 3.1. The navigation tabs in the admin theme do not apply this.

This sounds straight forward enough, we can test that and correct it if needs be. I'd prefer 1:4.5 though.

And 1 warning:
1. First landmark heading H2.

Can you tell us which page you found this one on?

Using landmarks isn't a requirement of WCAG at all; just a great way to satisfy SC 1.3.1 Info and Relationships and SC 2.4.1 Bypass Blocks.

The skip-to-main-content link is a red herring here. I suppose we could wrap it in a navigation landmark but that seems like overkill to me. If you know how to use your landmark navigation tools (typically implying a screen reader), then you don't need the skip link, and won't suffer from not finding it inside a landmark region. The skip link mainly benefits sighted keyboard users, who don't have tools to find landmark regions.

andrewmacpherson’s picture

After a bit of Googling, it looks like these error phrases come from the Functional Accessibility Evaluator ruleset from CITA. I'm aware of this checker, though I haven't studied it in depth before.

The landmark rules mentioned are:

So this isn't a set of WCAG failures exactly - my understanding is that FAE is like a set of house rules intended to meet WCAG.

It might be worth going through the FAE rules so see how closely Drupal meets them, and maybe we'll find some good ideas there. I don't think we should expend effort on satisfying every testing tool we encounter though.

andrewmacpherson’s picture

Aha, this is fantastically informative:

Review of Open Ajax Aliance (OAA) RuleSet for WCAG conformance

It seems that the FAE was developed to test WCAG, and the W3C in turn may have used it to inform the "Understanding SC x.y.z" documents. There's no date on the document :-(

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

sdewitt’s picture

In a recent review of our authoring experience using the IBM DAP plugin, we found some legitimate contrast issues with the admin primary tabs. In particular the inactive tabs only have a contrast ratio of 4.21:1. I have included screenshots of the tabs in question, the DOM elements involved, and the DAP message.

We have found some additional issues as well. I have put them altogether with the original report in a PPT. I will also try to update the item list above.

sdewitt’s picture

StatusFileSize
new477.5 KB
andrewmacpherson’s picture

Thanks for these reports @sdewitt. I've seen the individual issues you've filed for these.

Most of them should be very easy to fix with little impact on the design.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.9 was released on December 7, 2022 and is the final full bugfix release for the Drupal 9.4.x series. Drupal 9.4.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.5.x-dev branch from now on, and new development or disruptive changes should be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

smustgrave’s picture

Status: Active » Closed (outdated)

Posted this in #accessibility channel and @mgifford mentioned this can be closed as there are better ways of tracking conformance now

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.