-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Yet more fixes to focus delegation #8174
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks correct to me now. I'm not convinced tests cover nested delegateFocus and so on, but I haven't looked super-closely.
Regarding the tests, we implemented proper focus delegation for dialogs recently in WebKit, and we found some failures, where we think the test might be incorrect: For the after sibling test, @rniwa and I don't understand why we expect the outside The implementation was done: WebKit/WebKit#2828 |
I think some of the test cases in dialog-focus-shadow.html seem contradictory now that I've finally gotten around to implementing all this dialog shadowdom focus stuff: <dialog data-description="No autofocus, yes delegatesFocus, sibling after">
<template class="turn-into-shadow-tree delegates-focus">
<button disabled>Non-focusable</button>
<button tabindex="-1" class="focus-me">Focusable</button>
<button disabled>Non-focusable</button>
</template>
<button tabindex="-1">Focusable</button>
</dialog> <dialog data-description="Autofocus inside shadow tree, yes delegatesFocus, sibling after">
<template class="turn-into-shadow-tree delegates-focus">
<button tabindex="-1">Focusable</button>
<button tabindex="-1" autofocus>Focusable</button>
<button disabled>Non-focusable</button>
</template>
<button tabindex="-1" class="focus-me">Focusable</button>
</dialog> If I'm reading this correctly, the only difference between the tests is that the second one has the
@nt1m I'm not sure if this is the same issue, can you confirm? |
I think we also need tests for potentially focusable elements being slotted into shadowroots in the dialog. I can propose some behavior and provide test cases like I did in my last comment soon. |
I am working on the Firefox implementation, and I agree with #8174 (comment) from Joey. |
Thanks @sefeng211! Do you have a link to the tests you've written handy? And if so, do you believe those tests cover both the listed issues? If so we're ready to merge this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good editorially.
@domenic Yeah, I fixed them and it's web-platform-tests/wpt#36449. I need to figure out why it's not automatically merged. |
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Bug: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d
Ah I also just finished my test changes here: web-platform-tests/wpt#36498 |
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Bug: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 Reviewed-by: Mason Freed <masonf@chromium.org> Commit-Queue: Joey Arhar <jarhar@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067796}
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 Reviewed-by: Mason Freed <masonf@chromium.org> Commit-Queue: Joey Arhar <jarhar@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067796}
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 Reviewed-by: Mason Freed <masonf@chromium.org> Commit-Queue: Joey Arhar <jarhar@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067796}
This reverts commit afeccd1f5b2dd72595abe55bc9ef093f11b495f1. Reason for revert: dialog-focus-shadow.html is failing on a couple of mac builders: https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.13%20Tests/57992/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.14%20Tests/28597/overview Original change's description: > Implement new dialog shadow focus behavior > > This implements the new dialog initial focus behavior specified in these > changes: > whatwg/html#7079 > whatwg/html#7284 > whatwg/html#7361 > whatwg/html#8174 > > The gist of the changes are: > 1. Use the DOM tree instead of the flat tree to search for an element to > give initial focus. > 2. Don't traverse into shadow roots when looking for elements to give > initial focus unless the shadow root has delegatesFocus. > > This will stay experimental until I have also made the other changes for > dialog initial focus: whatwg/html#8199 > After those changes have been made as well, I will carefully enable the > flag by default. > > Fixed: 383230, 670130, 1292852 > Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 > Reviewed-by: Mason Freed <masonf@chromium.org> > Commit-Queue: Joey Arhar <jarhar@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1067796} Change-Id: I010be9a77fd8c289edb8c028355182d0fe7dec39
This reverts commit afeccd1. Reason for revert: dialog-focus-shadow.html is failing on a couple of mac builders: https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.13%20Tests/57992/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.14%20Tests/28597/overview Original change's description: > Implement new dialog shadow focus behavior > > This implements the new dialog initial focus behavior specified in these > changes: > whatwg/html#7079 > whatwg/html#7284 > whatwg/html#7361 > whatwg/html#8174 > > The gist of the changes are: > 1. Use the DOM tree instead of the flat tree to search for an element to > give initial focus. > 2. Don't traverse into shadow roots when looking for elements to give > initial focus unless the shadow root has delegatesFocus. > > This will stay experimental until I have also made the other changes for > dialog initial focus: whatwg/html#8199 > After those changes have been made as well, I will carefully enable the > flag by default. > > Fixed: 383230, 670130, 1292852 > Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 > Reviewed-by: Mason Freed <masonf@chromium.org> > Commit-Queue: Joey Arhar <jarhar@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1067796} Change-Id: I010be9a77fd8c289edb8c028355182d0fe7dec39 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4005547 Commit-Queue: Tim Sergeant <tsergeant@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Tim Sergeant <tsergeant@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Tim Sergeant <tsergeant@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067950}
This reverts commit afeccd1f5b2dd72595abe55bc9ef093f11b495f1. Reason for revert: dialog-focus-shadow.html is failing on a couple of mac builders: https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.13%20Tests/57992/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.14%20Tests/28597/overview Original change's description: > Implement new dialog shadow focus behavior > > This implements the new dialog initial focus behavior specified in these > changes: > whatwg/html#7079 > whatwg/html#7284 > whatwg/html#7361 > whatwg/html#8174 > > The gist of the changes are: > 1. Use the DOM tree instead of the flat tree to search for an element to > give initial focus. > 2. Don't traverse into shadow roots when looking for elements to give > initial focus unless the shadow root has delegatesFocus. > > This will stay experimental until I have also made the other changes for > dialog initial focus: whatwg/html#8199 > After those changes have been made as well, I will carefully enable the > flag by default. > > Fixed: 383230, 670130, 1292852 > Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 > Reviewed-by: Mason Freed <masonf@chromium.org> > Commit-Queue: Joey Arhar <jarhar@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1067796} Change-Id: I010be9a77fd8c289edb8c028355182d0fe7dec39 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4005547 Commit-Queue: Tim Sergeant <tsergeant@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Tim Sergeant <tsergeant@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Tim Sergeant <tsergeant@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067950}
This reverts commit afeccd1f5b2dd72595abe55bc9ef093f11b495f1. Reason for revert: dialog-focus-shadow.html is failing on a couple of mac builders: https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.13%20Tests/57992/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.14%20Tests/28597/overview Original change's description: > Implement new dialog shadow focus behavior > > This implements the new dialog initial focus behavior specified in these > changes: > whatwg/html#7079 > whatwg/html#7284 > whatwg/html#7361 > whatwg/html#8174 > > The gist of the changes are: > 1. Use the DOM tree instead of the flat tree to search for an element to > give initial focus. > 2. Don't traverse into shadow roots when looking for elements to give > initial focus unless the shadow root has delegatesFocus. > > This will stay experimental until I have also made the other changes for > dialog initial focus: whatwg/html#8199 > After those changes have been made as well, I will carefully enable the > flag by default. > > Fixed: 383230, 670130, 1292852 > Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 > Reviewed-by: Mason Freed <masonf@chromium.org> > Commit-Queue: Joey Arhar <jarhar@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1067796} Change-Id: I010be9a77fd8c289edb8c028355182d0fe7dec39 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4005547 Commit-Queue: Tim Sergeant <tsergeant@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Tim Sergeant <tsergeant@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Tim Sergeant <tsergeant@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067950}
This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: If024ab0f22716c55b439e44b2298e39897ee844e
…or, a=testonly Automatic update from web-platform-tests Implement new dialog shadow focus behavior This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 Reviewed-by: Mason Freed <masonf@chromium.org> Commit-Queue: Joey Arhar <jarhar@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067796} -- wpt-commits: e1d2b674fbcc1ca01eccb624fdd758c38f3407a7 wpt-pr: 36498
…s behavior", a=testonly Automatic update from web-platform-tests Revert "Implement new dialog shadow focus behavior" This reverts commit afeccd1f5b2dd72595abe55bc9ef093f11b495f1. Reason for revert: dialog-focus-shadow.html is failing on a couple of mac builders: https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.13%20Tests/57992/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.14%20Tests/28597/overview Original change's description: > Implement new dialog shadow focus behavior > > This implements the new dialog initial focus behavior specified in these > changes: > whatwg/html#7079 > whatwg/html#7284 > whatwg/html#7361 > whatwg/html#8174 > > The gist of the changes are: > 1. Use the DOM tree instead of the flat tree to search for an element to > give initial focus. > 2. Don't traverse into shadow roots when looking for elements to give > initial focus unless the shadow root has delegatesFocus. > > This will stay experimental until I have also made the other changes for > dialog initial focus: whatwg/html#8199 > After those changes have been made as well, I will carefully enable the > flag by default. > > Fixed: 383230, 670130, 1292852 > Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 > Reviewed-by: Mason Freed <masonf@chromium.org> > Commit-Queue: Joey Arhar <jarhar@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1067796} Change-Id: I010be9a77fd8c289edb8c028355182d0fe7dec39 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4005547 Commit-Queue: Tim Sergeant <tsergeant@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Tim Sergeant <tsergeant@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Tim Sergeant <tsergeant@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067950} -- wpt-commits: 011077556f5634fe685c613564c3325e77387462 wpt-pr: 36838
…or, a=testonly Automatic update from web-platform-tests Implement new dialog shadow focus behavior This implements the new dialog initial focus behavior specified in these changes: whatwg/html#7079 whatwg/html#7284 whatwg/html#7361 whatwg/html#8174 The gist of the changes are: 1. Use the DOM tree instead of the flat tree to search for an element to give initial focus. 2. Don't traverse into shadow roots when looking for elements to give initial focus unless the shadow root has delegatesFocus. This will stay experimental until I have also made the other changes for dialog initial focus: whatwg/html#8199 After those changes have been made as well, I will carefully enable the flag by default. Fixed: 383230, 670130, 1292852 Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 Reviewed-by: Mason Freed <masonf@chromium.org> Commit-Queue: Joey Arhar <jarhar@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067796} -- wpt-commits: e1d2b674fbcc1ca01eccb624fdd758c38f3407a7 wpt-pr: 36498
…s behavior", a=testonly Automatic update from web-platform-tests Revert "Implement new dialog shadow focus behavior" This reverts commit afeccd1f5b2dd72595abe55bc9ef093f11b495f1. Reason for revert: dialog-focus-shadow.html is failing on a couple of mac builders: https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.13%20Tests/57992/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Mac10.14%20Tests/28597/overview Original change's description: > Implement new dialog shadow focus behavior > > This implements the new dialog initial focus behavior specified in these > changes: > whatwg/html#7079 > whatwg/html#7284 > whatwg/html#7361 > whatwg/html#8174 > > The gist of the changes are: > 1. Use the DOM tree instead of the flat tree to search for an element to > give initial focus. > 2. Don't traverse into shadow roots when looking for elements to give > initial focus unless the shadow root has delegatesFocus. > > This will stay experimental until I have also made the other changes for > dialog initial focus: whatwg/html#8199 > After those changes have been made as well, I will carefully enable the > flag by default. > > Fixed: 383230, 670130, 1292852 > Change-Id: I13995197f1942aa356cab0f3b41a0e226d1d170d > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3961528 > Reviewed-by: Mason Freed <masonf@chromium.org> > Commit-Queue: Joey Arhar <jarhar@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1067796} Change-Id: I010be9a77fd8c289edb8c028355182d0fe7dec39 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4005547 Commit-Queue: Tim Sergeant <tsergeant@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Tim Sergeant <tsergeant@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Tim Sergeant <tsergeant@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067950} -- wpt-commits: 011077556f5634fe685c613564c3325e77387462 wpt-pr: 36838
Fixes #8156. Fixes #8157.
This is the latest in a series of PRs as we slowly iterate toward correct algorithms for these. For previous work in the series, see #7361, #7284, #7079.
/cc @emilio, @nt1m, @rniwa, @smaug----, @josepharhar as people who seem to be working on these areas in implementations. @emilio can you review in particular?
(See WHATWG Working Mode: Changes for more details.)
/interaction.html ( diff )