WICG / proposals

A home for well-formed proposed incubations for the web platform. All proposals welcome.
https://wicg.io/
Other
233 stars 16 forks source link

Mechanism to mark up "alternative" read order #138

Open brennanyoung opened 9 months ago

brennanyoung commented 9 months ago

“Content order” is an important design characteristic, especially for accessibility (“a11y”).

It is intimately connected with ‘good semantics’.

WCAG 2.1 and 2.2 specifiy several success criteria which pertain to this characteristic:

1.3.1 Info and Relationships 1.3.2 Meaningful Sequence 2.4.3 Focus Order

Users of Assisitive Technologies (ATs) such as screen readers rely on authors arranging their content in such a way that the most meaningful “next” item appears subsequently in the DOM. Keyboard shortcuts might direct the reading cursor to the next heading or the next image, or just the next palpable element. Similarly, the “tab sequence” is most reliable when it follows the order of operable elements in the DOM.

In most cases, this works very well. It is a modest constraint which is relatively easy to follow.

However, there are various classes of content which are not well-served by this approach. To generalize, this content is characterised by the potential for (or expectation of) multiple viable pathways, to the extent that the information, structure, and relationships conveyed through presentation are neither fully programmatically determined, nor readily reduced to flat text.

What is called for is a way for any 'node' (palpable element) to indicate a flow of meaning or continuation to any other palpable element(s), as its natural or most meaningful "next" item(s), regardless of the position of that/those elements in the DOM.

Some Concrete Use Cases

Ideal and Necessary Features

Prior Art

After a deep-dive discussion, the ARIA community agreed not to deprecate aria-flowto until we have a viable replacement which better serves the use cases mentioned above. We agreed that the best way to approach this was via a WICG proposal, because any solution might potentially become part of in HTML, rather than merely part of ARIA. I hope this Proposal captures the essence of the discussion, now we just have to hash it out and find something that can work.

Questions, opinions and discussion are very welcome.