#852: Borderless mode
Discussions
Discussed
Jun 1, 2023 (See Github)
Hadley: no security & privacy review... There's a security considerations section of the explainer... They do mention the scenario I was worried about - giving the site the ability to replace the title bar you could spoof the titlebar. To mitigate this threat they've only made it available for "isolated webapps"
Dan: so there's a dependency on isolated webapps... Which is also in our review queue.
Sangwhan: this is less complicated than isolated webapps - but some intesting risks. URL bar spoofing, phishing, etc... some gates to prevent that. Not likely that it would happen.
Hadley: I think it would be good that we'd like it to stay in that explicit context. It says in the explainer "at least for now" only in isolated webapps..
Sangwhan: overall... PWAs give more customizability... whether that's the correct choice given that the user has chosen to install the application...
Dan: can we clarify what exactly this is doing because to my understanding PWAs can already come up "full screen"...
Sangwhan: not zero risk but less risky than letting regular PWAs to do it..
Yves: relationship between Isolated webapps and miniapp...
Sangwhan: philisophical difference between IWAs and miniapp..
Discussed
Jul 1, 2023 (See Github)
Hadley: Restricted to (dependent on) Isolated Web Apps, which is Chrome only. No signals from Firefox or Safari.
Dan: so there is a dependency on isolated web apps..
Yves: and there should be coordination between them and miniapps...
Max: they need to provide more use cases from the user's perspective.
Dan: let's bump this to the plenary...
Discussed
Jul 1, 2023 (See Github)
Hadley: we discussed this, since it had a strong dependency on isolated web apps, we were going to join them up with miniapps.
Sangwhan: miniapps is primarily about mobile. If they want to go to desktop, they'll have this problem. you want the user to have control over application sizing.
...Sounds like IE6
Hadley: also sounds like kiosk mode, but without the restrictions from getting into the operating system
Lea: what's the use case?
Hadley: It's for IWAs, which want to look like they're not in the web. Like native apps.
Lea: what happens if the app doesn't iclude a close button? Most users don't know the keyboard shortcuts.
Sanghwan: I'm against using the webkit prefix style. There are efforts to remove this, but given the speed of how things work, i'm not convinced it's a good way of doing this.
Lea: I have concerns. A big use case is adding controls to the existing title bar, see their example of Excel. They've added controls but still need the regular controls... However, here the common case is not easy and there is a cliff: the moment you need to add anything to the title bar, you have to recreate the whole thing, including the regular windowing controls. I can easily see lazy implementations that look like OSX or Windows in every platform, rather than preserving the platform conventions.
Sangwhan: is there an enforcement of draggable? No. Guarantees of draggability is probably required. What is the accessibility story for this?
Hadley and Lea: +1
Sangwhan: the semantics of close are very important. There is no discussion of that.
Hadley: we should ask them to talk to the Second Screen WG, re Fullscreen popup windows.
We discussed this during our vF2F. While we see potential use cases which could benefit from this functionality, we'd like to discuss a couple things that are points of concern.
First of all, this depends on a feature that no other implementation has provided any signal on - which somewhat jeapordizes its future path on the web platform. We'd probably want to hear some level of feedback from other implementors on the dependency proposal (IWA) as it is a architecturally complex topic which we should carefully approach.
Even if this is gated behind a protected context of some form (IWAs?) - draggability should be a key consideration, especially the guarantees of having the user to be able to do so. The proposal as it stands does not seem to have mitigations from applications (be it malicious or not) breaking usability by making undraggable windows - and we believe that is not a positive pattern. Similar situation with the window controls. Reading the IWA explainer, we had a hard time understanding how that as a mechanism can prevent bad patterns coming from user-experience degrading applications.
We are also concerned that the feature introduces a [sharp cliff](https://www.w3.org/TR/design-principles/#high-level-low-level) in terms of usability: While many use cases are as simple as adding a control to the title bar, there is no way to do this without recreating the entire title bar, windowing controls and all. It would be better to introduce a layered solution, that makes [simple cases easy and complex cases possible](https://www.w3.org/TR/design-principles/#simplicity:~:text=As%20Alan%20Kay%20said%2C%20%22simple%20things%20should%20be%20simple%2C%20complex%20things%20should%20be%20possible.%22.
The drag feature being coupled to a webkit-prefix style is definitely not a recommended pattern, and unless this is a prototype/trial, having yet another feature depend on a webkit prefixed feature is a pattern we should avoid.
And we would recommend you have a conversation with the Second Screen working group, who are working on [Fullscreen Popup Windows](https://github.com/w3ctag/design-reviews/issues/840). Their use case is slightly different, but it would be good if you could align your approaches and attributes. @bradtriebwasser, @michaelwasserman, @inexorabletash, and @anssiko are your main contacts for that.
Finally, we see there is no discussion about the accessibility risks associated with removing the window controls from the user interface. This can have detrimental effects on the usability in the context of AT needs.
Comment by @cynthia Aug 3, 2023 (See Github)
We discussed this during our vF2F. While we see potential use cases which could benefit from this functionality, we'd like to discuss a couple things that are points of concern.
First of all, this depends on a feature that no other implementation has provided any signal on - which somewhat jeapordizes its future path on the web platform. We'd probably want to hear some level of feedback from other implementors on the dependency proposal (IWA) as it is a architecturally complex topic which we should carefully approach.
Even if this is gated behind a protected context of some form (IWAs?) - draggability should be a key consideration, especially the guarantees of having the user to be able to do so. The proposal as it stands does not seem to have mitigations from applications (be it malicious or not) breaking usability by making undraggable windows - and we believe that is not a positive pattern. Similar situation with the window controls. Reading the IWA explainer, we had a hard time understanding how that as a mechanism can prevent bad patterns coming from user-experience degrading applications.
We are also concerned that the feature introduces a sharp cliff in terms of usability: While many use cases are as simple as adding a control to the title bar, there is no way to do this without recreating the entire title bar, windowing controls and all. It would be better to introduce a layered solution, that makes simple cases easy and complex cases possible.
The drag feature being coupled to a webkit-prefix style is definitely not a recommended pattern, and unless this is a prototype/trial, having yet another feature depend on a webkit prefixed feature is a pattern we should avoid.
And we would recommend you have a conversation with the Second Screen working group, who are working on Fullscreen Popup Windows. Their use case is slightly different, but it would be good if you could align your approaches and attributes. @bradtriebwasser, @michaelwasserman, @inexorabletash, and @anssiko are your main contacts for that.
Finally, we see there is no discussion about the accessibility risks associated with removing the window controls from the user interface. This can have detrimental effects on the usability in the context of AT needs.
P.S. A web platform explainer should not have any Googler-only links.
Comment by @sonkkeli Sep 15, 2023 (See Github)
Thank you for your detailed feedback. We agree that probably it makes sense to first go through the IWA review before a feature which depends on it strongly. Here’s some pointers to the feedback. Let me know if there's more concerns raised in regards to anything.
IWAs It is important to note that the borderless feature is primarily designed for use in high-trust environments (IWAs) and not intended for the broader web platform in its current form. In the event that we’d consider expanding its use to the broader web, additional mitigations and fallbacks to address potential risks should definitely be explored. Our main goal w.r.t. the web platform is making sure that this design doesn't prevent future mitigations or fallbacks in the future if they are needed.
Webkit-prefix Someone from Microsoft is working on addressing this issue crbug.com/1447586.
Draggability Actually in some scenarios, non-draggable windows are the desired outcome, such as for when the app wants to open non-draggable modal dialogs or right-click menus from the VDI session. I made a PR to highlight such use-cases better in the explainer.
Sharp cliff There is already the existing Window Controls Overlay feature which can be seen as the “simple case” for most users providing minimal draggable area. However, as discussed on the explainer this would not be sufficient for our trusted partner's use cases.
Accessibility Web content allows the creation of accessible websites. We would expect our trusted partners to leverage the existing capabilities (together with the upcoming AWC) to ensure accessibility in their isolated web apps. This is something I added to the new accessibility section in the explainer. However we want to make sure that we are not missing something and we’ll make sure to contact our accessibility experts at Google again. During the launch process there was already an internal accessibility review step which was approved.
Fullscreen Popups
We’ve brought this explainer to the attention of the Second Screen WG, but there are relatively few parallels between this IWA manifest display-mode proposal and the window.open()
fullscreen
feature proposed in Fullscreen Popup Windows. While they share a permission and some security considerations, this application setting relies on the additional trust of Isolated Web Apps, and fullscreen popups mainly offer a new entrypoint to the transient HTML Fullscreen window state.
Comment by @mgiuca Sep 22, 2023 (See Github)
(Non-TAG member with a few comments)
designed for use in high-trust environments (IWAs) and not intended for the broader web platform in its current form
I think the explainer/spec could be written to avoid directly depending on IWAs and instead just use a more generic idea of a "high-trust environment". Leave it unspecified but state that the user agent "MUST" only expose this in environments where the user has indicated through some unspecified mechanism a higher degree of trust in the application.
This is a stop-gap measure. We really need a way, in general, of talking about "high-trust contexts" in specs which have well-understood definitions, and can therefore pave the way for user agents to introduce things like IWAs which fit that definition, without literally prescribing that the APIs need to be exposed in IWAs.
There is already the existing Window Controls Overlay feature which can be seen as the “simple case” for most users providing minimal draggable area.
I agree, I think WCO feature provides Alan Kay's "simple things easy" whilst Borderless provides the "complex things possible" use cases. However, in line with comments I made in March on the pull request, I think that justification means that Borderless should act as an extension of WCO rather than being quite a different design. To me, that means using a similar user-opt-in mechanism (a toggle control on the border itself, which then clearly denotes how to "untoggle" it via an animation), rather than a permission prompt for something that is fundamentally not a permission, but a different UI mode.
Discussed
Oct 1, 2023 (See Github)
Sangwhan: can I get back to you in a week? I misunderstood what this is.
bumps
Discussed
Oct 1, 2023 (See Github)
Sangwhan: I met with the developers - they have heard our concerns but unlikely to be addressed. Concerns were mainly about user agent controls being completely removed when the permission has been granted. Dragability and resizeability goes away... No way for user to claw that back - except by going into browser settings and revoking the permission... That's not great - one particular thing - unmovable modal dialogs - accessibility issues. How they plan to use this - have the virtualized desktop environments - a super fancy remote desktop. Idea is that all the windows from your remote desktop brought over to your local desktoip as separate windows... Like parallels or vmware - remote applications casted to your local OS as if they are local applications... Dragability is determined by the OS on the other side... e.g. Photoshop on remote desktop - it will say "you cannot drag that window" and native dragability should not be able to usurp.
Dan: comparable to.. in the powerful apis breakout.. where yes there's a native capability but does it make sense for that native capability to be translated directly to the web. I kind of agree but I feel like the argument that comes back to us from people who are promoting the web as a competitor to native is that well native has it so we have to have it. This is a very good example of something that disproves that.
Sangwhan: ultimately I think this is an implementer decision. I don't see this proposal having any feature being standardised becuase there are so many unknowns when it comes to normative text. On top of that, the questions you have to ask about.. the reason for this powerful capability being a thing is because it's in a trusted environment - which is not a well defined paradigm. The application is from a vetted vendor, a managed browser.. none of these concepts exist on the web platform today
Dan: therefore it's chrome only, like the mangaged device api, or capture all the screens, not okay to standardise
Sangwhan: I suggested there's likely no future for this on the web platform unless a lot of boilerplate work is done to do with formalising the "trusted" browser or application concept
Yves: is it related to web apps can provide the fact you trust them?
Sangwhan: yes, hard dependency on that. How do they define what is a trusted application? It's a business decision, up in the air. What's on the table today, we can't support it. Consider this as a non web platform feature, or a proprietary api. Probably wouldn't cause serious harm from one implementer with the surface it has today, it's very specifically carved out. We wouldn't support, but not harmful.
Yves: "ambivalent" - we see the use cases, but they need to iron out details. Not something that should not be implemented, but needs more work. We don't want to see it on the web right now, but it's useful in the case of installable web apps
Sanwhan: depends on isolated web apps. Without that context it doesn't work. Also introduces new accessibility issues.
<blockquote> Hi @sonkkeli we discussed today in our TAG breakout. We don't think this should be standardized in it's current form on the web platform. We understand the use case. However there is a dependency on the idea of "trusted" applications - and this is an area that is in development - e.g. [isolated webapps](https://github.com/w3ctag/design-reviews/issues/842) which we're also concerned with and is currently not stable enough for other things to be built on top of it. In any case, we are concerned with the lack of agency of the user - e.g. with dragability and accessibility issues. We're going to close this review for now. </blockquote>*closed as ambivalent
Comment by @torgo Oct 17, 2023 (See Github)
Hi @sonkkeli we discussed today in our TAG breakout. We don't think this should be standardized in it's current form on the web platform. We understand the use case. However there is a dependency on the idea of "trusted" applications - and this is an area that is in development - e.g. isolated webapps which we're also concerned with and is currently not stable enough for other things to be built on top of it. In any case, we are concerned with the lack of agency of the user - e.g. with dragability and accessibility issues. We're going to close this review for now.
OpenedJun 7, 2023
こんにちは TAG-さん!
I'm requesting a TAG review of borderless mode.
Currently all the possible app display and display_override modes rely on apps having at least some format of a title bar - something between the full Chrome title bar and currently most minimized window-controls-overlay (WCO). Despite WCO having some same qualities as what we are trying to achieve, it is still not offering enough flexibility for some use-cases. To enable such use-cases, this explainer will explain how the title bar will be completely removed and so-called borderless mode enabled. This way the title bar area is replaced with web content and so giving the developers full control on how the title bar would look like.
Further details:
You should also know that...
This feature will only be available for Isolated Web Apps.
We'd prefer the TAG provide feedback as (please delete all but the desired option):
💬 leave review feedback as a comment in this issue and @-notify sonkkeli, dmurph