Changes in WCAG 2.1

The WordPress AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) team is updating the existing WordPress accessibility standards for development. Web Content Accessibility Guidelines (WCAGWCAG WCAG is an acronym for Web Content Accessibility Guidelines. These guidelines are helping make sure the internet is accessible to all people no matter how they would need to access the internet (screen-reader, keyboard only, etc) https://www.w3.org/TR/WCAG21/.) are the industry standard recommendations for improving web accessibility. The current WordPress accessibility standards are shifting from WCAG 2.0 to WCAG 2.1.

WCAG 2.1 was published on June 5, 2018. WCAG 2.0 guidelines are built into 2.1 so by conforming to 2.1, you are conforming to 2.0. Where it differs is that WCAG 2.1 has an additional 17 success criteria targeted at users with cognitive or learning disabilities, low vision, and disabled users on mobile devices. 

The WordPress Accessibility Handbook, Accessibility Core Standards, and Accessibility Pattern Library are being updated to reflect these changes and provide better guidance. This will include:

  • the principles, guidance and success criteria for conforming to WCAG 2.1
  • a list of documents and resources (technical and non-technical) for reference
  • a library of patterns (good and bad) with examples that will help improve the user interface

Below is a summary with examples of the additional success criteria for WCAG 2.1 under each of the principle and corresponding guideline.

Principle: Perceivable

Guideline 1.3 Adaptable

1.3.4 Orientation — Level AA

Content does not restrict its view and operation to a single display orientation, such as portrait or landscape, unless a specific display orientation is essential. 

Example:

This would be an uncommon scenario in WordPress. A hypothetical example might be implementing an editing interface that only worked in landscape format, because some tools were not visible on screen in a narrower viewport. 

1.3.5 Identify Input Purpose — Level AA

The purpose of each input field collecting information about a user can be programmatically determined.

Example:

This success criteria essentially means “use supported autocomplete attributes when they are relevant.” When collecting common user information, such as name, email, address, or other common information, the fields collecting that information must use the relevant autocomplete attribute. This aids users with cognitive or mobility impairments.

Guideline 1.4 Distinguishable

1.4.10 Reflow — Level AA

Content can be presented without loss of information or functionality and without scrolling in two dimensions.

Example:

The table element, in normal usage, has a significantly limited capability to be responsive while retaining the semantic value of a table. This commonly results in the need to scroll vertically to see all rows and horizontally to see all columns. Interfaces must avoid requiring users to scroll in multiple directions to see content. 

1.4.11 Non-text Contrast — Level AA

The visual presentation of content images and user interface components must have a contrast ratio of at least 3:1 against adjacent colors.

Example:

Form fields, buttons, or icons that are not supplemental to text are all examples of design elements that now have a contrast requirement. WordPress has applied this expectation in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for several years already, so this should not have any profound impact on design expectations.

1.4.12 Text Spacing — Level AA

No loss of content or functionality should occur when line-height, paragraph spacing, letter spacing, and word spacing is changed.

Example:

Users may employ custom stylesheets or other mechanism to make text more readable for their needs. While primarily targeted at text, it may result in unexpected overlaps when containers become wider or taller. Test with the text-spacing bookmarklet (https://codepen.io/stevef/pen/YLMqbo/

1.4.13 Content on Hover or Focus – Level AA

When hover or focus states are used to reveal and hide content, the content can be dismissed without moving hover or focus; hover can be moved over the revealed content without a loss of visibility of the content; and the content remains visible until the hover or focus trigger is removed, the user dismisses the content, or the information is no longer valid.

Example:

A standard tooltip (using the ‘title’ attribute) violates most of these requirements. It becomes visible only on hover, you cannot move the hover pointer over the content, and disappears after a pre-set timeout. An accessible tooltip would need to meet the criteria specified. Principle: Operable

Guideline 2.1 Keyboard Accessible

2.1.4 Character Key Shortcuts – Level A

If a keyboard shortcut is implemented using only letter, punctuation, number, or symbol characters, then it is possible to either disable or remap the shortcut or the shortcut is only active when the reacting component has focus.

Example:

A shortcut that requires a non-printable key to activate, such as Alt, Cmd, or Ctrl is not a single-key shortcut. However, the comment navigation shortcuts (j, k, a, s, d, z, u, r, q, and e) in WordPress are single-key shortcuts that could cause problems. They are disabled  on a user-by-user basis and default to off, however, which meets the required criteria. 

Guideline 2.5 Input Modalities

2.5.1 Pointer Gestures – Level A

All functionality that uses multipoint or path-based gestures can be operated with a single pointer without a path gesture.

Example:

A slider or carousel that is navigated by swiping, pinch gestures to zoom in and out on a map, or a value slider incremented only on strict left/right axis operation are examples of problematic interfaces. 

2.5.2 Pointer Cancellation – Level A

For functionality operated using a single pointer, at least one of these is true: execution does not occur on the down event; completion is on the up event, and a mechanism is available to abort or undo after completion; the up event reverses the outcome of the preceding down event, or it is essential that the event occur on the down event.

Example:

The purpose of this criteria is error prevention. Events executed on a down event have no safety exception to prevent accidental actions. The primary example of essential action include keyboard emulations or other examples emulating a trigger action (piano keyboard, shooting game implementations, etc.)

2.5.3 Label in Name – Level A

For interface components with labels including visible text, the accessible name of the component contains the visible text. 

Example:

If the visible text on a button is “Submit”, then “Submit” is a valid accessible name, and so is “Submit the Entry Form” (with “the entry form” as hidden screen reader text.) If the button contained an aria-label with the text “Send the Entry Form”, that would not be valid, as the aria-label attribute has overridden the accessible name and there is no match between the visible text and the control’s name. 

2.5.4 Motion Actuation – Level A

If functionality is activated or operated using device motion, the motion can also be operated using user interface components and the motion actuation can be disabled.

Example:

Features such as “Shake to Undo” or tilt to advance pages may impose barriers to users. A mobility impaired user with a device held in a fixture may not be able to tilt the device; a user with Parkinson’s or Multiple Sclerosis may undo an action unintentionally. 

2.5.5 Target size – Level AAA

The size of the target for pointer inputs is at least 44 by 44 CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. pixels unless it’s: duplicated by another control that meets this requirement; an inline target with a sentence or blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. of text; determined by the user agent; or essential to the information conveyed.

Example:

This is a level AAA criteria, but it is our intention to meet the requirement as well as we can. This primarily effects the size of controls, such as buttons to close modals, tools within the editor, or submit buttons. An example of an essential target size might be when displaying an uploaded image; if the image is smaller than 44 x 44 CSS pixels but is an actionable control, it should be displayed at true size. 

Principle: Robust

Guideline 4.1 Compatible

4.1.3 Status Messages – Level AA

Status messages can be programmatically determined through role or properties such that they can be presented using assistive technologyAssistive technology Assistive technology is an umbrella term that includes assistive, adaptive, and rehabilitative devices for people with disabilities and also includes the process used in selecting, locating, and using them. Assistive technology promotes greater independence by enabling people to perform tasks that they were formerly unable to accomplish, or had great difficulty accomplishing, by providing enhancements to, or changing methods of interacting with, the technology needed to accomplish such tasks. https://en.wikipedia.org/wiki/Assistive_technology without moving focus.

Example:

This is an extremely common pattern throughout WordPress. Most status messages can be communicated by using `wp.a11y.speak()`, though in some cases it may be necessary to use an independent handler. ARIA roles such as ‘alert’ or properties like ‘aria-live’ are required to receive messages that will be observed by assistive technology.

How to Meet WCAG (Quick Reference) offers a complete list of all the success criteria and techniques for 2.1. Please help us make WordPress more accessible.

Thanks to @joedolson @afercia and @jillmugge for drafting, editing and providing feedback to this post.

#accessibility, #accessibility-docs

Accessibility Team Meeting Notes: March 12, 2021

These are the weekly notes for the AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) Team meeting that happens on Fridays. You can read the full transcript on our Slack channel and find the meeting’s agenda here.

Meeting time change following Daylight Saving Time introduction

Meeting and bug scrub times will stay the same. Bug scrub at Friday 15:00 UTC and meeting at Friday 16:00 UTC. The day will stay the same on Friday.

Improvement of onboarding for new contributors

Here is a list of ideas that the accessibility team came up with to improve the onboarding process for new contributors to the accessibility team.

  • Add information about the bi-monthly meeting for new core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. to the accessibility handbook
  • Ease participation to tickets and issues with good-first-bug and needs-accessibility-feedback labels: make them more discoverable and improve how to ask for feedback from team members about them
  • Add a Slackbot welcome announcement when someone joins the #accessibility channel on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.
  • Update the “Get involved” chapter in the accessibility handbook and make the handbook more friendly for new contributors (discussion will happen in the #accessibility-docs channel on Slack)

Open floor

@annezazu informed the team that Taylor Arndt very kindly joined a Zoom meeting to share some feedback around the Full Site Editing experience when using screen readers. Here’s a quick summary of issues to be aware of (she’ll include some of these in a recap post she’s doing for the FSE Outreach Program’s second call for testing):

@annezazu also flagged the following items:

Here are a couple other issues brought up by the team.

If you have time to review/contribute to the new accessibility standards, your feedback is welcome and much appreciated.

#meeting-notes

This week in WordPress Accessibility, December 11, 2017

Weekly meeting

Transcript meeting in Slack

Handbook

The writing continues steadily, we still hope to finish the best practices mid March.

In the meantime we need to set up a marketing plan for the handbook. @samikeijonen and @postphotos want to work in this, with the help of the Marketing team (@mcdwayne, @gidgey and @anafransilva).

Thoughts and ideas are in the Google doc: Marketing plan for accessibility handbook.
We will continue the discussions in the SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel #accessibility-docs.

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/

The Gutenberg inserter has been tested at the contributors day at WCUS and by @abrightclearweb

The the Gutenberg toolbar roving tabindex is still on the to-do list.

Note from @afercia: The roving tabindex thing is implemented for now just on the Inserter “tabs”. The point is, consider to use the same technique for the toolbar too?
See Toolbar: consider to use a roving tabindex and standardize navigation · Issue #3383

It’s well explained in the ARIA Authoring Practices example. Worth noting there’s now an option to set the toolbar in different positions:

  • docked to the top
  • floating on top of each blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.

Further more we need urgent frontend testers/reviewers/devs for the issues Sami created om GitHub to prevent inline style going into the frontend code. There have been good conversation about inline styles in Proposal of removing inline styles · Issue #2862.

Items on the To-do list

  • Prevent frontend style getting in Gutenberg
  • Research screen reader performance for code short codes like [ php ] or [ htmlHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. ] – action Sami, if he has time
  • Write up a summary of things that will change in WCAGWCAG WCAG is an acronym for Web Content Accessibility Guidelines. These guidelines are helping make sure the internet is accessible to all people no matter how they would need to access the internet (screen-reader, keyboard only, etc) https://www.w3.org/TR/WCAG21/. 2.1 for coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and design – action Rian, next week

AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) news / good reads

#weekly-meetings