WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
246580
AX: WebKit does not break AX modality when focus is explicitly moved outside the modal
https://bugs.webkit.org/show_bug.cgi?id=246580
Summary
AX: WebKit does not break AX modality when focus is explicitly moved outside ...
Tyler Wilcock
Reported
2022-10-15 13:29:45 PDT
https://www.w3.org/TR/wai-aria-1.1/#aria-modal
"If focus moves to an element outside the modal element, assistive technologies SHOULD NOT limit navigation to the modal element." We don't follow this recommendation, and we should.
Attachments
Patch
(6.62 KB, patch)
2022-10-15 13:33 PDT
,
Tyler Wilcock
no flags
Details
Formatted Diff
Diff
Patch
(6.56 KB, patch)
2022-10-15 13:34 PDT
,
Tyler Wilcock
no flags
Details
Formatted Diff
Diff
Patch
(8.69 KB, patch)
2022-10-17 12:23 PDT
,
Tyler Wilcock
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2022-10-15 13:29:55 PDT
<
rdar://problem/101209793
>
Tyler Wilcock
Comment 2
2022-10-15 13:33:58 PDT
Created
attachment 463012
[details]
Patch
Tyler Wilcock
Comment 3
2022-10-15 13:34:46 PDT
Created
attachment 463013
[details]
Patch
chris fleizach
Comment 4
2022-10-16 21:56:17 PDT
Comment on
attachment 463013
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=463013&action=review
> Source/WebCore/accessibility/AXObjectCache.h:515 > + enum class WillRecomputeFocus : bool { No, Yes };
"RecomputeFocus" seems like might be enough
> Source/WebCore/accessibility/AXObjectCache.h:517 > + Element* updateCurrentModalNodeInternal(WillRecomputeFocus = WillRecomputeFocus::No);
both of these are private methods. can they be combined? or renamed to be more specific?
Tyler Wilcock
Comment 5
2022-10-17 12:23:28 PDT
Created
attachment 463039
[details]
Patch
Tyler Wilcock
Comment 6
2022-10-17 12:24:11 PDT
(In reply to chris fleizach from
comment #4
)
> Comment on
attachment 463013
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=463013&action=review
> > > Source/WebCore/accessibility/AXObjectCache.h:515 > > + enum class WillRecomputeFocus : bool { No, Yes }; > > "RecomputeFocus" seems like might be enough
I chose "WillRecomputeFocus" here because updateCurrentModalNodeInternal needs to know if the calling code knows we will recompute the focus through some other means (e.g. via our modal auto-focusing mechanism). It needs to know this because if the calling context will not recompute focus, and the focused element is outside our modals, we must invalidate modality per-spec. I feel like "RecomputeFocus" doesn't capture this intent the same way "WillRecomputeFocus" does, but if you feel strongly about RecomputeFocus or some other alternative I'd be willing to make the change.
> > Source/WebCore/accessibility/AXObjectCache.h:517 > > + Element* updateCurrentModalNodeInternal(WillRecomputeFocus = WillRecomputeFocus::No); > > both of these are private methods. can they be combined? or renamed to be > more specific?
Fixed by inlining updateCurrentModalNodeInternal into a lambda within updateCurrentModalNode.
EWS
Comment 7
2022-10-17 21:48:20 PDT
Committed
255665@main
(b6eab27a3f8d): <
https://commits.webkit.org/255665@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 463039
[details]
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug