Report ARIA details role#13649
Conversation
…to ariaDetailsRole
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
| <div id="definition-details-as-role" role="definition">details with role definition</div> | ||
| <p> | ||
| <span role="term">definition</span>: | ||
| <span id="definition-details-as-role" role="definition">details with role definition</span> | ||
| </p> |
There was a problem hiding this comment.
These shouldn't both exist (two elements with id="definition-details-as-role".
I'd also like the <dfn> example added. It seems both the role="term" / role="definition" case and the <p> A description for a <dfn>term</dfn> is in this paragraph.</p> case share the similar problem about aria-details pointing to the term rather than the definition. Illustrating this in the tests will be helpful when having the discussion later.
There was a problem hiding this comment.
I've added documentation to the test samples and fixed it so we consistently point to the term in cfb74bf
See test results for failed build of commit 3437f37dd8 |
See test results for failed build of commit 99636e1cf6 |
|
Although the test failures look related to this change, similar tests have failed on other recent PR builds. I have started the build again. |
Link to issue number:
None
Summary of the issue:
When announcing if an object has details, more information can be provided about the role of the details.
For example, if a comment is tied to a word, "has comment" should be reported instead of "has details".
Description of how this pull request fixes the issue:
Collects the details role.
The attribute details role is determined in a number of cases.
Braille
Use
has cmmtto report presence of comment role aria-details target. DiscussionFocus Mode
detailsRole is normalized on the NVDAObject level to a
controlType.Role.Chromium
The IA2 attribute
details-rolesis used to get the role.This supports the following roles (code):
comment, definition, doc-endnote, doc-footnote. Other roles are given a value of * .Currently only chromium supports
details-roles.Additionally,
doc-endnoteanddefinitionare not supported IA2 attributes, and are not supported in NVDA widely.We limit reporting for all cases by only reporting the fully supported
details-roles:doc-footnote, commentOther roles are reported as "has details".
FireFox
The related details node is fetched using in process injection, and the IAccessible information is retrieved.
The role is determined from the IAccessible role of the related node.
This is slower and provides a wider reporting of roles.
Browse Mode
The detailsRole attribute is added directly to the buffer, either as a descriptive role string or a role integer as a string.
Testing strategy:
The system test cases test the details role for Chrome, using both focus and browse mode.
runsystemtests.bat -t "*aria details*"Equivalent manual testing was performed using those test cases on both Chrome and FireFox.
Known issues with pull request:
Braille tests will not work as expected as braille only reports details in marked content. #13815
Change log entries:
New features
Code Review Checklist: