-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Add popover attribute #8221
Add popover attribute #8221
Conversation
I see that there are many build errors after build.sh says "Running conformance checker...", but when I run build.sh locally, it just stops after "Success!". How do I run the conformance checker when building locally? |
The conformance checker is at https://github.com/validator/validator and has a variety of installation options. You need to run it on the output |
Thanks, I was able to run it! It looks like the PR builds now |
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.
I managed to get a start on this review today... still more to go, but hopefully this helps.
Thanks for the review! I'm going to be out until monday so I'll try to get to it then |
Thanks for the review @domenic! I have addressed all your comments |
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.
Not an authoritative review; but some questions that popped up while quickly reading the PR.
Since these attributes only apply to HTMLButtonElement and HTMLInputElement, it doesn't make sense to put them in the IDL for all Elements: whatwg/html#8221 (comment) Change-Id: I7038aefedbff78ec3af97b23c7a51a64cb0f275d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3894822 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: David Baron <dbaron@chromium.org> Cr-Commit-Position: refs/heads/main@{#1048107}
@domenic mind taking another look? Anything else I can do to help move this forward? |
It's on my list, sorry! I had a week of TPAC then a week of vacation, so I'm currently down to 20 flagged work emails and 24 flagged GitHub emails :). |
Drive-by: element and attribute indices haven't been updated as far as I can tell. (FWIW, I plan on doing a more careful review.) |
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.
Lots of editorial issues; as always, if you can be sure to do an extra sweep to make sure you catch multiple instances, that saves a lot of time.
On normative issues, I think these are the biggest outstanding ones:
- show/hide naming (under discussion in Open UI I guess, not sure how that's going)
- Element vs. HTMLElement; i.e., behavior for unknown, SVG, and MathML elements
- Some confusion about spec text for some animation pausing stuff
- Light dismiss spec intercepting capture events on Document is quite unusual; @annevk's help there would be appreciated steering us in the right direction
Looks like we might rename them to popupshow and popuphide: openui/open-ui#607
@mfreed7 Why did you implement all of the popup behavior in Element instead of HTMLElement? What do you think the behavior should be for unknown, SVG, and MathML elements? |
This was moved from the HTML spec PR for the popup attribute based on this advice: whatwg/html#8221 (comment) TODO add a better description of this
My general logic has been "why not?". I.e. we had the same debate in the TAG about limiting this feature to only some element types. And if there's a good reason to limit it, great. But if the only reason is that we don't know what it'll be used for, I think web developers will figure that out. For example, why not a pop-up SVG? I could think of some use cases where an icon (a "like button" for example) is made with SVG and would like to be a pop-up. Side note: this is currently broken in Chromium, but pending this discussion, I'll fix that. Just a missing set of rules in the UA stylesheet. |
I haven't done a full final review. I found that while looking at what got committed to determine how #8221 (comment) got resolved, which was never responded to. |
Apologies, I misinterpreted that comment. I believe that that the top layer assert can never be hit because the above call to "check popover validity" will return false in any case where the element is in the top layer, which will result in an exception being thrown instead of continuing to the assert. |
Anne asked for this here: whatwg/html#8221 (comment) Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33
Anne asked for this here: whatwg/html#8221 (comment) Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33
Anne asked for this here: whatwg/html#8221 (comment) Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33
This reverts commit a7f99da. See whatwg#8221 (comment) for context.
Anne asked for this here: whatwg/html#8221 (comment) Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33
Anne asked for this here: whatwg/html#8221 (comment) Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33
The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33
…y, a=testonly Automatic update from web-platform-tests Do not fire `beforetoggle` asynchronously Per the discussion at [1], we have decided not to fire async beforetoggle events at all. This means that no event will be fired in this case: ```javascript myPopover.showPopover(); myPopover.remove(); ``` [1] whatwg/html#8221 (comment) Bug: 1307772 Change-Id: Ie6d0f24f1181131fd6e15732020c0575cd3ba865 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4146026 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Joey Arhar <jarhar@chromium.org> Auto-Submit: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1090506} -- wpt-commits: 7c3aacf158efb050bdb81a1dd97ac324eaee799a wpt-pr: 37814
…e Element reflection, a=testonly Automatic update from web-platform-tests Change popover invoking attributes to use Element reflection Per the conversation at [1], we've decided to make the IDL reflections of the invoking attributes (popovertoggletarget, popovershowtarget, and popoverhidetarget) use Element reflection, and be named accordingly. [1] whatwg/html#8221 (comment) Fixed: 1405856 Bug: 1307772 Change-Id: Iace783795c2db7a19e11fbc4f0c4da33a8765779 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4148056 Auto-Submit: Mason Freed <masonf@chromium.org> Commit-Queue: Mason Freed <masonf@chromium.org> Reviewed-by: Joey Arhar <jarhar@chromium.org> Commit-Queue: Joey Arhar <jarhar@chromium.org> Cr-Commit-Position: refs/heads/main@{#1090582} -- wpt-commits: a0ddc451e02afbbe600c679fe1edab0e4f878ecf wpt-pr: 37815
The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33
…y, a=testonly Automatic update from web-platform-tests Do not fire `beforetoggle` asynchronously Per the discussion at [1], we have decided not to fire async beforetoggle events at all. This means that no event will be fired in this case: ```javascript myPopover.showPopover(); myPopover.remove(); ``` [1] whatwg/html#8221 (comment) Bug: 1307772 Change-Id: Ie6d0f24f1181131fd6e15732020c0575cd3ba865 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4146026 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Joey Arhar <jarhar@chromium.org> Auto-Submit: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1090506} -- wpt-commits: 7c3aacf158efb050bdb81a1dd97ac324eaee799a wpt-pr: 37814
…e Element reflection, a=testonly Automatic update from web-platform-tests Change popover invoking attributes to use Element reflection Per the conversation at [1], we've decided to make the IDL reflections of the invoking attributes (popovertoggletarget, popovershowtarget, and popoverhidetarget) use Element reflection, and be named accordingly. [1] whatwg/html#8221 (comment) Fixed: 1405856 Bug: 1307772 Change-Id: Iace783795c2db7a19e11fbc4f0c4da33a8765779 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4148056 Auto-Submit: Mason Freed <masonf@chromium.org> Commit-Queue: Mason Freed <masonf@chromium.org> Reviewed-by: Joey Arhar <jarhar@chromium.org> Commit-Queue: Joey Arhar <jarhar@chromium.org> Cr-Commit-Position: refs/heads/main@{#1090582} -- wpt-commits: a0ddc451e02afbbe600c679fe1edab0e4f878ecf wpt-pr: 37815
The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33
The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4115790 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1096920}
The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4115790 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1096920}
The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4115790 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1096920}
Tests: https://wpt.fyi/results/html/semantics/popovers. Additional context: https://open-ui.org/components/popup.research.explainer. Prior PR: whatwg#8221. Closes whatwg#7785.
Tests: https://wpt.fyi/results/html/semantics/popovers. Additional context: https://open-ui.org/components/popup.research.explainer. Prior PR: #8221. Closes #7785.
…ified, a=testonly Automatic update from web-platform-tests Check popover stack when buttons are modified The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4115790 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1096920} -- wpt-commits: 355b774d54fd4a6fff8165533d731616ac09dc6e wpt-pr: 37594
…ified, a=testonly Automatic update from web-platform-tests Check popover stack when buttons are modified The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4115790 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1096920} -- wpt-commits: 355b774d54fd4a6fff8165533d731616ac09dc6e wpt-pr: 37594
The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4115790 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1096920}
This is part of the new pop-up attribute: whatwg/html#8221. Co-authored-by: Anne van Kesteren <annevk@annevk.nl> Co-authored-by: Philip Jägenstedt <philip@foolip.org>
…ified, a=testonly Automatic update from web-platform-tests Check popover stack when buttons are modified The popover stack is constructed by attributes set on buttons. When those buttons are modified, it can break connections in the stack. This patch adds checks to spots where buttons can be modified in order to fix up the list by closing all popovers when a connection has been broken. This patch also moves the disabled check for popover*target attributes which Anne asked for here: whatwg/html#8221 (comment) Bug: 1307772, 1408546 Change-Id: I129cf2768abc717292b86ea26f7522019ce36d33 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4115790 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1096920} -- wpt-commits: 355b774d54fd4a6fff8165533d731616ac09dc6e wpt-pr: 37594
Feature proposal issue: #7785
Explainer: https://open-ui.org/components/popup.research.explainer
/browsers.html ( diff )
/dnd.html ( diff )
/dom.html ( diff )
/form-elements.html ( diff )
/index.html ( diff )
/indices.html ( diff )
/infrastructure.html ( diff )
/input.html ( diff )
/interaction.html ( diff )
/interactive-elements.html ( diff )
/rendering.html ( diff )
/semantics-other.html ( diff )
/webappapis.html ( diff )
/popover.html ( diff )