- From: Daniel Murphy <notifications@github.com>
- Date: Thu, 09 Jul 2020 08:42:47 -0700
- To: w3ctag/design-reviews <design-reviews@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3ctag/design-reviews/issues/530/656202142@github.com>
Ah! Ok, so this is a case where I don't think I'm explaining things well enough.
For the minimal-ui example:
* Browser A support:
* [x] `display`
* [ ] `display-override`
* [x] `standalone`
* [x] `minimal-ui`
* Browser B support:
* [x] `display`
* [ ] `display-override`
* [x] `standalone`
* [ ] `minimal-ui`
* Browser C support:
* [x] `display`
* [x] `display-override`
* [x] `standalone`
* [x] `minimal-ui`
The developer wants to use `minimal-ui`. If they set:
```json
{
"display": "minimal-ui"
}
```
A: WebApp supported, with `minimal-ui`
B: WebApp NOT supported. `minimal-ui` is not supported, so it falls back to `browser`, which means it is not a webapp.
C: WebApp supported, with `minimal-ui`
The developer says "Hey - Browser B supports WebApps, why can't I just be `standalone` there?" The answer is because the spec defines `minimal-ui` AFTER `standalone`, so a developer either has to:
* Not use that display mode at all, or
* Not support browser B.
with `display_override`:
```json
{
"display": "standalone",
"display_override": ["minimal-ui"]
}
```
A: WebApp supported, with `standalone`
B: WebApp supported. with `standalone`
C: WebApp supported, with `minimal-ui`
In this case, now the WebApp is possible with all browsers.
The other examples highlight other problems - for example, the new Tabbed mode proposal. Without `display_override`, where would this fall in the fallback chain? What if the browser doesn't support it? That could mean either the developer:
* is forced to support other display modes they don't want, if it's high on the fallback chain, or
* is forced to not have a webapp if it is low on the fallback chain & `tabbed` mode isn't supported.
Basically, the defined-by-spec fallback chain is the difficulty here, and it would be better if the developer could customize it. The `override` nature is to help with backwards compatibility.
If I have some time I'll try to update the explainer with a more thorough explanation of what various browsers would do for various display settings. I'm also happy to do a quick VC here to have higher bandwidth - I might not be understanding something you're saying.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3ctag/design-reviews/issues/530#issuecomment-656202142
Received on Thursday, 9 July 2020 15:42:59 UTC