Open Bug 1726087 Opened 4 years ago Updated 5 months ago

Implement description-from object attribute

Categories

(Core :: Disability Access APIs, enhancement)

enhancement

Tracking

()

People

(Reporter: Jamie, Unassigned)

References

Details

For ARIA annotations, it is useful for clients to be able to distinguish where the accessible description came from; e.g. HTML @title, aria-describedby, aria-description, etc. Chrome added a description-from object attribute for this purpose. It has one of the following values:

  • "aria-description"
  • "aria-describedby"
  • "ruby-annotation"
  • "summary"
  • "table-caption"
  • "tooltip" (either via @title or aria-describedby + role="tooltip")
  • "button-label" (when the name came from other markup such as aria-label)

Some of these (table-caption, ruby-annotation) don't apply in Firefox yet. I have no idea what button-label is for (how can the description come from aria-label and why is it specific to buttons)? For now, I think we can just implement this for aria-description, aria-describedby, summary and tooltip.

Note that NVDA already uses this in Chrome.

This will probably require Accessible::Description to return a flag indicating where the description came from, just as we do for Accessible::Name now. Since the values need to be exposed as strings, it probably makes sense to use static atoms for the flag.

We should standardize this attribute, maybe in HTML-AAM?
Note that Chrome now also supports a value of "svg-desc-element".
Regarding <ruby>, it's helpful when the <rt> contents are exposed as a description, because it avoids double speaking in the default case, which is normally a big problem. However, if the user wants, they can still get to the <rt> contents as long as their screen reader supports the reading of flat descriptions. Note that <ruby> is used in several ways, and there is an early proposal to add an HTML type attribute to Ruby here: https://github.com/w3c/aria/issues/1620#issuecomment-954528496
In other words, we may need description-from to reflect the different types of <ruby> (or use yet another attribute), at some point.

JAWS/NVDA may need this attribute to disambiguate:

See https://github.com/w3c/core-aam/issues/60

See Also: → 1814504
Assignee: jteh → nobody
You need to log in before you can comment on or make changes to this bug.