Skip to content

Commit

Permalink
Include hidden objects in accessible tree.
Browse files Browse the repository at this point in the history
Include display:none, visibility:hidden and aria-hidden elements in
the accessible tree.

We plan to use them to streamline the calculation of accessible names,
so it does not require additional DOM or layout tree traversals. We
previously attempted to include only those hidden nodes which were
required for accname calculation, but there were complications to
keep the tree up-to-date. This is much easier to maintain and it
doesn't seem to have a noticeable performance impact.

A sizeable number of DumpAccessibilityTreeTest expectations were
updated to include the newly included hidden nodes.

Original author was aleventhal@chromium.org in:
http://crrev.com/c/3197971

Bug: 1255036
Change-Id: I899781b654dd2b1dd97473b92e26d95fa54376bc
Cq-Include-Trybots: luci.chromium.try:win7-blink-rel,win7-rel
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3217730
Reviewed-by: Jonathan Ross <jonross@chromium.org>
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Nektarios Paisios <nektar@chromium.org>
Commit-Queue: Jacobo Aragunde Pérez <jaragunde@igalia.com>
Cr-Commit-Position: refs/heads/main@{#949376}
  • Loading branch information
jaragunde authored and Chromium LUCI CQ committed Dec 8, 2021
1 parent 8ef3bd7 commit 38084c4
Show file tree
Hide file tree
Showing 77 changed files with 407 additions and 97 deletions.
Expand Up @@ -26,3 +26,4 @@ rootWebArea
++++++grid
++++++++columnHeader name='Sort undefined'
++++++group name='Hidden undefined, display block'
++++++genericContainer ignored invisible
Expand Up @@ -5,14 +5,18 @@ rootWebArea isLineBreakingObject=true
++++++++staticText name='blockDisplay'
++++++++++inlineTextBox name='blockDisplay'
++++++genericContainer ignored invisible
++++++++staticText ignored name='noneDisplay'
++++++genericContainer ignored invisible isLineBreakingObject=true
++++++++staticText ignored invisible name='blockDisplay Hiddentrue'
++++++genericContainer ignored invisible
++++++++staticText ignored invisible name='noneDisplay Hiddentrue'
++++++genericContainer isLineBreakingObject=true
++++++++staticText name='blockDisplay Hiddenfalse'
++++++++++inlineTextBox name='blockDisplay Hiddenfalse'
++++++genericContainer invisible
++++++++staticText ignored name='noneDisplay Hiddenfalse'
++++++genericContainer invisible name='blockDisplay Hiddentruefocusable' isLineBreakingObject=true
++++++++staticText ignored invisible name='blockDisplay Hiddentruefocusable'
++++++genericContainer ignored invisible
++++++++heading invisible name='noneDisplayParent Hiddenfalse' isLineBreakingObject=true
++++++++++staticText ignored name='noneDisplayParent Hiddenfalse'
@@ -1,5 +1,11 @@
rootWebArea
++genericContainer ignored
++++genericContainer ignored
++++++genericContainer invisible
++++++genericContainer ignored invisible
++++++++genericContainer ignored invisible
++++++++++button ignored invisible
++++++++++++staticText ignored invisible name='expect invisible subtree'
++++++++genericContainer invisible
++++++++++button ignored invisible
++++++++++++staticText ignored name='expect invisible subtree'
++++++group name='Done'
Expand Up @@ -6,6 +6,8 @@ rootWebArea
++++++++++button ignored invisible
++++++++++++staticText ignored invisible name='expect invisible subtree'
++++++++genericContainer invisible
++++++++++button ignored invisible
++++++++++++staticText ignored invisible name='expect invisible subtree'
++++++++genericContainer ignored invisible
++++++++++button invisible name='expect invisible subtree'
++++++++++++staticText ignored invisible name='expect invisible subtree'
Expand Down
Expand Up @@ -4,9 +4,11 @@ rootWebArea name='done'
++++++genericContainer ignored invisible
++++++++genericContainer ignored invisible
++++++++++comboBoxGrouping ignored invisible
++++++++++++genericContainer ignored invisible
++++++++++++textField ignored invisible
++++++++++++++genericContainer ignored invisible
++++++++++++listBox ignored invisible
++++++++++++++none ignored invisible
++++++++++++++++none ignored invisible
++++++++++++++++++staticText ignored name='%E2%80%A2 '
++++++++++++++++staticText ignored invisible name='Test'
++++++++genericContainer ignored invisible
Expand Up @@ -26,3 +26,4 @@ rootWebArea
++++++grid
++++++++columnHeader name='Sort undefined'
++++++group name='Hidden undefined, display block'
++++++genericContainer ignored invisible
Expand Up @@ -26,3 +26,4 @@ rootWebArea
++++++grid
++++++++columnHeader name='Sort undefined'
++++++group name='Hidden undefined, display block'
++++++genericContainer ignored invisible
Expand Up @@ -3,7 +3,8 @@ rootWebArea
++++genericContainer ignored
++++++genericContainer ignored
++++++++genericContainer ignored invisible
++++++++genericContainer description='span-A4' name='span-A3' descriptionFrom=relatedElement
++++++++++genericContainer ignored invisible
++++++++++genericContainer description='span-A4' name='span-A3' descriptionFrom=relatedElement
++++++++++++genericContainer ignored invisible
++++++++genericContainer description='span-A2' name='span-B' descriptionFrom=relatedElement
++++++++genericContainer name='span-C'
Expand Up @@ -2,5 +2,7 @@ rootWebArea
++genericContainer ignored
++++genericContainer ignored
++++++genericContainer ignored
++++++++genericContainer ignored invisible
++++++++++genericContainer ignored invisible
++++++++genericContainer description='b'
++++++++genericContainer description='c'
Expand Up @@ -3,7 +3,8 @@ rootWebArea
++++genericContainer ignored
++++++genericContainer ignored
++++++++genericContainer ignored invisible
++++++++group name='span-A4'
++++++++++genericContainer ignored invisible
++++++++++group name='span-A4'
++++++++++++genericContainer ignored invisible
++++++++group name='span-A2'
++++++++genericContainer name='span-C'
Expand Up @@ -11,6 +11,7 @@ rootWebArea
++++++++++++++staticText name='Day'
++++++++++++++++inlineTextBox name='Day'
++++++++++++columnHeader ignored invisible
++++++++++++++staticText ignored name='Year'
++++++++++++columnHeader name='Weather' ariaCellColumnIndex=5 ariaCellRowIndex=2
++++++++++++++staticText name='Weather'
++++++++++++++++inlineTextBox name='Weather'
Expand All @@ -22,6 +23,7 @@ rootWebArea
++++++++++++++staticText name='01'
++++++++++++++++inlineTextBox name='01'
++++++++++++cell ignored invisible
++++++++++++++staticText ignored name='2017'
++++++++++++cell name='Sunny' ariaCellColumnIndex=5 ariaCellRowIndex=3
++++++++++++++staticText name='Sunny'
++++++++++++++++inlineTextBox name='Sunny'
Expand All @@ -33,6 +35,7 @@ rootWebArea
++++++++++++++staticText name='02'
++++++++++++++++inlineTextBox name='02'
++++++++++++cell ignored invisible
++++++++++++++staticText ignored name='2017'
++++++++++++cell name='Rainy' ariaCellColumnIndex=5 ariaCellRowIndex=4
++++++++++++++staticText name='Rainy'
++++++++++++++++inlineTextBox name='Rainy'
Expand Down
Expand Up @@ -58,6 +58,7 @@ rootWebArea
++++++++++staticText name='Some Text'
++++++++++++inlineTextBox name='Some Text'
++++++image name='alt'
++++++++staticText ignored name='Div text content'
++++++genericContainer
++++++++staticText name='DOM Text'
++++++++++inlineTextBox name='DOM Text'
Expand Down
Expand Up @@ -2,5 +2,7 @@ rootWebArea name='Done'
++genericContainer ignored
++++genericContainer ignored
++++++genericContainer
++++++++genericContainer ignored invisible
++++++++++staticText ignored invisible name='aria-hidden'
++++++++genericContainer
++++++++++staticText name='Not hidden'
@@ -1,2 +1,4 @@
rootWebArea
++genericContainer ignored invisible
++++genericContainer ignored invisible
++++++staticText ignored invisible name='<newline>'
Expand Up @@ -3,5 +3,10 @@ rootWebArea name='done'
++++genericContainer ignored
++++++genericContainer
++++++++group className='hidden' name='Label'
++++++++++staticText ignored invisible name='<newline> target<newline> '
++++++++++genericContainer ignored invisible
++++++++++++staticText ignored invisible name='<newline> child<newline> '
++++++++++staticText ignored invisible name='<newline> '
++++++++++genericContainer ignored invisible
++++++++++++staticText ignored invisible name='Label'
++++++++++staticText ignored invisible name='<newline> '
Expand Up @@ -2,3 +2,7 @@ rootWebArea
++genericContainer ignored
++++genericContainer ignored
++++++genericContainer ignored invisible
++++++++link ignored invisible
++++++++++staticText ignored name='One'
++++++++link ignored invisible
++++++++++staticText ignored name='Two'
Expand Up @@ -2,3 +2,4 @@ rootWebArea
++genericContainer ignored
++++genericContainer
++++++image name='alternative text'
++++++++staticText ignored name='DOM text'
Expand Up @@ -2,8 +2,10 @@ rootWebArea
++genericContainer ignored
++++genericContainer ignored
++++++paragraph ignored invisible
++++++++staticText ignored invisible name='Hidden paragraph with '
++++++++staticText name='visible link'
++++++++++inlineTextBox name='visible link'
++++++paragraph ignored invisible
++++++++staticText ignored invisible name='Collapsed paragraph with '
++++++++staticText name='visible link'
++++++++++inlineTextBox name='visible link'
Expand Up @@ -5,6 +5,7 @@ rootWebArea
++++++++staticText name='Cats '
++++++++++inlineTextBox name='Cats '
++++++++genericContainer ignored invisible
++++++++++checkBox ignored invisible
++++++++genericContainer
++++++++++staticText name='done'
++++++++++++inlineTextBox name='done'
Expand Up @@ -16,8 +16,10 @@ rootWebArea
++++++++staticText offscreen name='normal text 1'
++++++++++inlineTextBox offscreen name='normal text 1'
++++++++genericContainer offscreen
++++++++++staticText ignored invisible offscreen name='<newline> nested non-viewport-activatable locked element will not be in AX tree<newline> '
++++++++staticText offscreen name='normal text 2'
++++++++++inlineTextBox offscreen name='normal text 2'
++++++++genericContainer offscreen
++++++++++staticText ignored invisible offscreen name='<newline> nested non-activatable locked element will not be in AX tree<newline> '
++++++++staticText offscreen name='normal text 3'
++++++++++inlineTextBox offscreen name='normal text 3'
Expand Up @@ -3,5 +3,13 @@ rootWebArea
++++genericContainer ignored
++++++genericContainer ignored
++++++++genericContainer
++++++++++staticText ignored invisible name='<newline> '
++++++++++genericContainer ignored invisible
++++++++++++staticText ignored invisible name='child'
++++++++++staticText ignored invisible name='<newline> '
++++++++++genericContainer ignored invisible
++++++++++++staticText ignored invisible name='nested locked element!'
++++++++++staticText ignored invisible name='<newline> '
++++++++++genericContainer ignored invisible
++++++++++++staticText ignored invisible name='activatable locked element'
++++++++++staticText ignored invisible name='<newline> '
Expand Up @@ -4,5 +4,4 @@ AriaProperties changed on role=textbox
IsDataValidForForm changed on role=textbox
Level changed on role=heading, name=Described by dialog title
StructureChanged/ChildAdded on role=dialog
StructureChanged/ChildrenReordered on role=dialog
StructureChanged/ChildrenReordered on role=document
StructureChanged/ChildrenReordered on role=document
Expand Up @@ -3,5 +3,4 @@ AriaProperties changed on role=heading, name=Described by dialog title
AriaProperties changed on role=textbox
IsDataValidForForm changed on role=textbox
StructureChanged/ChildAdded on role=dialog
StructureChanged/ChildrenReordered on role=dialog
StructureChanged/ChildrenReordered on role=document
StructureChanged/ChildrenReordered on role=document
@@ -1,4 +1,3 @@
EVENT_OBJECT_REORDER on <#document> role=ROLE_SYSTEM_DOCUMENT value~=[doc-url] FOCUSED,FOCUSABLE
EVENT_OBJECT_REORDER on <div> role=ROLE_SYSTEM_GROUPING
EVENT_OBJECT_SHOW on <div#described-by-dialog> role=ROLE_SYSTEM_DIALOG
IA2_EVENT_TEXT_INSERTED on <#document> role=ROLE_SYSTEM_DOCUMENT value~=[doc-url] FOCUSED,FOCUSABLE new_text={'<obj>' start=0 end=1}
IA2_EVENT_TEXT_INSERTED on <#document> role=ROLE_SYSTEM_DOCUMENT value~=[doc-url] FOCUSED,FOCUSABLE new_text={'<obj>' start=0 end=1}
Expand Up @@ -4,5 +4,4 @@ AriaProperties changed on role=textbox
IsDataValidForForm changed on role=textbox
Level changed on role=heading, name=Dialog title
StructureChanged/ChildAdded on role=dialog, name=Dialog title
StructureChanged/ChildrenReordered on role=dialog, name=Dialog title
StructureChanged/ChildrenReordered on role=document
StructureChanged/ChildrenReordered on role=document
Expand Up @@ -3,5 +3,4 @@ AriaProperties changed on role=heading, name=Dialog title
AriaProperties changed on role=textbox
IsDataValidForForm changed on role=textbox
StructureChanged/ChildAdded on role=dialog, name=Dialog title
StructureChanged/ChildrenReordered on role=dialog, name=Dialog title
StructureChanged/ChildrenReordered on role=document
StructureChanged/ChildrenReordered on role=document
@@ -1,4 +1,3 @@
EVENT_OBJECT_REORDER on <#document> role=ROLE_SYSTEM_DOCUMENT value~=[doc-url] FOCUSED,FOCUSABLE
EVENT_OBJECT_REORDER on <div> role=ROLE_SYSTEM_GROUPING
EVENT_OBJECT_SHOW on <div#dialog> role=ROLE_SYSTEM_DIALOG name="Dialog title"
IA2_EVENT_TEXT_INSERTED on <#document> role=ROLE_SYSTEM_DOCUMENT value~=[doc-url] FOCUSED,FOCUSABLE new_text={'<obj>' start=0 end=1}
IA2_EVENT_TEXT_INSERTED on <#document> role=ROLE_SYSTEM_DOCUMENT value~=[doc-url] FOCUSED,FOCUSABLE new_text={'<obj>' start=0 end=1}
Expand Up @@ -4,5 +4,4 @@ AriaProperties changed on role=textbox
IsDataValidForForm changed on role=textbox
Level changed on role=heading, name=Dialog title
StructureChanged/ChildAdded on role=dialog
StructureChanged/ChildrenReordered on role=dialog
StructureChanged/ChildrenReordered on role=document
StructureChanged/ChildrenReordered on role=document
Expand Up @@ -3,5 +3,4 @@ AriaProperties changed on role=heading, name=Dialog title
AriaProperties changed on role=textbox
IsDataValidForForm changed on role=textbox
StructureChanged/ChildAdded on role=dialog
StructureChanged/ChildrenReordered on role=dialog
StructureChanged/ChildrenReordered on role=document
StructureChanged/ChildrenReordered on role=document
@@ -1,4 +1,3 @@
EVENT_OBJECT_REORDER on <#document> role=ROLE_SYSTEM_DOCUMENT value~=[doc-url] FOCUSED,FOCUSABLE
EVENT_OBJECT_REORDER on <div> role=ROLE_SYSTEM_GROUPING
EVENT_OBJECT_SHOW on <div#no-info-dialog> role=ROLE_SYSTEM_DIALOG
IA2_EVENT_TEXT_INSERTED on <#document> role=ROLE_SYSTEM_DOCUMENT value~=[doc-url] FOCUSED,FOCUSABLE new_text={'<obj>' start=0 end=1}
IA2_EVENT_TEXT_INSERTED on <#document> role=ROLE_SYSTEM_DOCUMENT value~=[doc-url] FOCUSED,FOCUSABLE new_text={'<obj>' start=0 end=1}
@@ -1,8 +1,6 @@
CHILDREN-CHANGED:REMOVE index:0 CHILD:(role=ROLE_SECTION) role=ROLE_DOCUMENT_WEB ENABLED,FOCUSABLE,FOCUSED,SENSITIVE,SHOWING,VISIBLE
=== Start Continuation ===
CHILDREN-CHANGED:ADD index:0 CHILD:(role=ROLE_SECTION) role=ROLE_DOCUMENT_WEB ENABLED,FOCUSABLE,FOCUSED,SENSITIVE,SHOWING,VISIBLE
STATE-CHANGE:DEFUNCT:TRUE role=ROLE_INVALID name='(null)' DEFUNCT
STATE-CHANGE:DEFUNCT:TRUE role=ROLE_INVALID name='(null)' DEFUNCT
=== Start Continuation ===
CHILDREN-CHANGED:REMOVE index:1 CHILD:(role=ROLE_SECTION) role=ROLE_DOCUMENT_WEB ENABLED,FOCUSABLE,FOCUSED,SENSITIVE,SHOWING,VISIBLE
PARENT-CHANGED PARENT:(role=ROLE_DOCUMENT_WEB name='(null)') role=ROLE_PUSH_BUTTON name='expect invisible subtree' ENABLED,FOCUSABLE,SENSITIVE
Expand Down
Expand Up @@ -16,12 +16,16 @@ rootWebArea
++++++++++++staticText name='Accordion Section #2'
++++++++++++++inlineTextBox name='Accordion Section #2'
++++++region ignored invisible
++++++++paragraph ignored invisible
++++++++++staticText ignored name='Content for second section of accordion element.'
++++++heading name='Accordion Section #3'
++++++++button collapsed name='Accordion Section #3' controlsIds=
++++++++++paragraph
++++++++++++staticText name='Accordion Section #3'
++++++++++++++inlineTextBox name='Accordion Section #3'
++++++region ignored invisible
++++++++paragraph ignored invisible
++++++++++staticText ignored name='Content for third section of accordion element.'
++++++heading name='Accordion Section #4'
++++++++button expanded name='Accordion Section #4' restriction=disabled
++++++++++paragraph
Expand Down
Expand Up @@ -5,8 +5,16 @@ rootWebArea
++++++genericContainer
++++++++staticText name='a'
++++++++++inlineTextBox name='a'
++++++++genericContainer ignored invisible
++++++++++staticText ignored name='b'
++++++++genericContainer ignored invisible
++++++++++staticText ignored invisible name='c'
++++++splitter horizontal name='Inside custom element'
++++++genericContainer ignored
++++++++genericContainer ignored
++++++++++staticText name='a'
++++++++++++inlineTextBox name='a'
++++++++++++inlineTextBox name='a'
++++++++++genericContainer ignored invisible
++++++++++++staticText ignored name='b'
++++++++++genericContainer ignored invisible
++++++++++++staticText ignored invisible name='c'
Expand Up @@ -2,6 +2,7 @@ rootWebArea htmlTag='#document'
++genericContainer ignored htmlTag='html'
++++genericContainer htmlTag='body'
++++++genericContainer ignored invisible htmlTag='template'
++++++genericContainer ignored invisible htmlTag='my-element'
++++++++genericContainer ignored invisible htmlTag='div'
++++++genericContainer ignored invisible htmlTag='div'
++++++++genericContainer ignored invisible htmlTag='my-element'
++++++++++genericContainer ignored invisible htmlTag='div'
++++++button htmlTag='button' name='Done'
Expand Up @@ -10,4 +10,6 @@ rootWebArea
++++++++++++staticText name='Endnote 2'
++++++++++++++inlineTextBox name='Endnote 2'
++++++++button ignored invisible
++++++++button ignored invisible
++++++++++staticText ignored name='1'
++++++++button ignored invisible
++++++++++staticText ignored name='2'
Expand Up @@ -12,6 +12,7 @@ rootWebArea
++++++++++staticText ignored invisible name='<newline> '
++++++++++staticText ignored invisible name='<newline> '
++++++++++paragraph ignored invisible
++++++++++++staticText ignored invisible name='The details tag specifies additional details that the user can view or hide on demand.'
++++++++++staticText ignored invisible name='<newline> '
++++++details
++++++++genericContainer ignored
Expand Down
Expand Up @@ -2,7 +2,8 @@ rootWebArea
++genericContainer ignored
++++genericContainer ignored
++++++paragraph
++++++++genericContainer ignored invisible
++++++++textField ignored invisible
++++++++++genericContainer ignored invisible
++++++++genericContainer ignored
++++++++++staticText name='*'
++++++++++++inlineTextBox name='*'
Expand Up @@ -12,3 +12,4 @@ rootWebArea name='done'
++++++++labelText ignored
++++++++++staticText ignored name='label'
++++++++++textField ignored
++++++++++++genericContainer ignored
Expand Up @@ -11,4 +11,3 @@ rootWebArea focusable
++++++++++++listItem ignored invisible
++++++++++++++listMarker ignored invisible
++++++++++++++++staticText ignored invisible name='%E2%96%BE'
++++++genericContainer ignored invisible
Expand Up @@ -8,4 +8,3 @@ rootWebArea
++++++++++listItem ignored invisible
++++++++++++listMarker ignored invisible
++++++++++++++staticText ignored invisible name='%E2%96%BE'
++++++genericContainer ignored invisible

0 comments on commit 38084c4

Please sign in to comment.