Intent to Implement: ARIA Annotation roles
Contact emails
Explainer
This is a subset of ARIA annotations editor’s draft, which explains and specifies a set of semantics for annotations in documents, enabling better accessibility. While most of the draft simply reuses existing markup that is already implemented in browsers, there are 5 new annotation- prefixed roles which require mapping.
Note: the plain “annotation” role needs no implementation, as it as abstract, and the docs- prefixed roles are already implemented as part of the published DPUB-ARIA and DPUB-AAM specs.
Design doc/Spec
I don’t think a design doc is necessary for such a simple role mapping change, and we already have a specification.
Summary
Map the 5 new annotation- prefixed roles to internal Chrome Blink and automation roles (ax_enums.mojom, automation.idl),
Motivation
To support screen reader accessibility of comments, suggestions and other annotations in published documents and online word processing scenarios such as Google Docs, iCloud Pages, and MS Office Online. This is not currently possible without resorting to live region hacks, which are not as reliable as semantics and do not work well with Braille displays. As a result, screen reader users have non-optimal support for collaboration features of online word processors.
Risks
Interoperability and Compatibility
Risk #1 is that Firefox and Safari will not implement.
Risk #2 is that the roles may still change before the spec is complete.
I would argue that these new roles, while very crucial for the accessibility of online word processing, will be used very rarely, so the risk is very small.
Edge: no official support, but positive signals during discussions
Firefox: No signals
Safari: no official support, but positive signals during discussions
Web / Framework developers: support from Google Docs team. A framework would be unlikely to need these roles.
Ergonomics
This will be mapped via IAccessible2 and ATK object attributes. For now, that’s enough. It’s possible that role enumerations will be developed for these roles in the future.
Will not affect performance.
Activation
Will be challenging to implement in the same way that ARIA is generally challenging to get right :)
Useful implementation will require direct collaboration with screen reader developers.
Polyfills will not likely be beneficial, as the number of websites that would likely use this will be rather small and specific.
Debuggability
DevTools will automatically support debugging of the feature through the Accessibility panel, which provides the computed role for all objects.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Support of platforms context really means 2 things:
1) Mapping through the platform accessibility API, and,
2) The development of additional navigation and presentation features within screen readers, roughly following assistive technology use cases that are also described in the spec, and learning from screen reader support for similar features in modern native word processors such as Microsoft Word.
The intention is to immediately map to the ChromeOS Automation API. Technically, some platform APIs IA2 already automatically map any unknown role as a string attribute. Additional platforms will get mappings over time.
Is this feature fully tested by web-platform-tests?
This feature will be fully tested via the usual accessibility testing strategies, including web platform tests.
Link to entry on the feature dashboard
Not sure if this is necessary for such a small change. The number of developers that would be interested in this feature will be tiny, and I’d suggest we should announce support once we are close to having across-the-board screen reader support. Happy to create one.
Requesting approval to ship?
Yes
Hi Aaron!
We discussed this at the weekly API Owner meeting and it seems to me that this is a really good fit for an origin trial, but it's not a good fit for shipping. In particular we want an api to be stable and have wide browser vendor support when it's officially shipped.
On the other hand, this seems like something that can be done really well as an origin trial ( https://www.chromium.org/blink/origin-trials ) as long as you can make at least one site interested in experimenting together with you. Then, once the origin trial has ended, and the spec has stabilized, it should be a solid feature ready to ship.
Best regards
/Daniel
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAC2P9WmC1%3DtZNg6gN8UC9GDdM-_hAkjX6U%3DxsfOq%3DDV_pcTEtA%40mail.gmail.com.
Friendly ping in case you missed our response.
/Daniel
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e0c52b77-7867-4817-a808-83dbcdf4cb50%40gmail.com.
accRole
property.xml-roles:"string"
)AriaRole
property. The AriaRole property
can also support secondary roles using a space as a separator.xml-roles:"string"
)Yes, I can see how that can seem inconsistent if there are other APIs shipping without wide vendor support and before they are robustly in a specification/standard, but I think that is just another sign that accessibility APIs are not given the attention they deserve. Since relatively few think about them or use them, taking shortcuts become acceptable, or leaving things under-specified as in the spec text you included.
Are you in contact with your peers at WebKit and Mozilla? Maybe you can agree on some way to move faster in unison?
/Daniel
I don't know the topic well enough to have specific comments, but the shipping process exists to reduce the risk for breaking the web. That can happen by different implementations diverging (for instance if some vendor elects to not ship a feature), or by a single implementation changing over time (because the first implementation was flawed).
This change is exposed to both of those risks, and it seemed like
it would be possible to avoid at least part of the problems with
an origin trial. Some features are hard to test in origin trials
but this seemed to be a good fit and then we would be able to ship
something that is proven to work. That would also help spec
writing and in effect, make it easier for other vendors to
implement the same thing at about the same time.
That is at least the theory behind origin trials. :)
I'm not sure about the risks for accessibility APIs in particular
but I assume breaking screen readers is the main risk when doing
changes?