- From: <bugzilla@jessica.w3.org>
- Date: Tue, 20 Jan 2015 12:33:47 +0000
- To: public-webapps@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27865 Bug ID: 27865 Summary: Interaction issues between fullscreen and <dialog> Product: WebAppsWG Version: unspecified Hardware: All OS: All Status: NEW Severity: normal Priority: P2 Component: Fullscreen Assignee: annevk@annevk.nl Reporter: quanxunzhen@gmail.com QA Contact: public-webapps-bugzilla@w3.org CC: mike@w3.org, public-webapps@w3.org I found there are several issues on interaction between fullscreen and <dialog>. If we have the following document: div id=a | +-div id=b | +-dialog id=c | +-div id=d Case #1: 1. request fullscreen on #b, 2. open modal dialog #c, 3. request fullscreen on #d. If I understand the specs correctly, in this case, the third step is a no-op. #d will not be made fullscreen because it is not a descendent of #b, which is the top element in the "fullscreen element stack". [1] But, if we change a little: Case #2: 1. request fullscreen on #a 2. open modal dialog #c, 3. request fullscreen on #d. This time, #d is successfully made fullscreen. I think it is an odd behavior, because authors should expect that #d is either (1) always open because its a descendent of the top element in the top layer stack, or (2) never open because a modal dialog is present. And what if we do this: Case #3: 1. open modal dialog #c 2. request fullscreen on #b If I read the specs correctly, it is the most unfortunate case. #b will be made fullscreen, because there was no element in the "fullscreen element stack" before, and cover the modal dialog, because it is added to the top layer stack later than #c, which makes it be closer to the user than the dialog. [2] However, according to the HTML spec, when there is any modal dialog opened, any element except the dialog and its descendent is marked inert, [3][4] which means although #b is the topmost element, it cannot receive any user interaction event before the invisible modal dialog get closed. [5] To solve these issues, I propose the following changes to the Fullscreen API spec: 1. Change the third and the last step of the "fullscreen element ready check" algorithm, make it check according to top layer stack instead of the "fullscreen element stack"; 2. Replace the "fullscreen element stack" with "fullscreen element set", and make all order depend on top layer stack only, so that we don't need to worry when their order is out of sync. [1] https://fullscreen.spec.whatwg.org/#fullscreen-element-ready-check [2] https://fullscreen.spec.whatwg.org/#new-stacking-layer [3] https://html.spec.whatwg.org/multipage/forms.html#dom-dialog-showmodal [4] https://html.spec.whatwg.org/multipage/interaction.html#blocked-by-a-modal-dialog [5] https://html.spec.whatwg.org/multipage/interaction.html#inert -- You are receiving this mail because: You are on the CC list for the bug.
Received on Tuesday, 20 January 2015 12:33:48 UTC