- From: Matt Giuca <notifications@github.com>
- Date: Sun, 23 Jul 2023 23:05:32 -0700
- To: w3c/manifest <manifest@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/manifest/issues/1094/1647269441@github.com>
This came out of a discussion Marijn and I were having on [here](https://chromium-review.googlesource.com/c/chromium/src/+/4594594/4/chrome/browser/web_applications/os_integration/web_app_shortcut_mac.mm) (very long thread). I don't think Marijn was asking to change the name (and I don't think we should). What we should do is clarify the wording of what it means. It wouldn't be a breaking change. I think there are two separate issues here which we should tease apart: 1. Does "any" mean the user agent can use it as if it were tagged with any of the other purposes, or something more specific? 2. How does the user agent choose the "most appropriate" icon size? **On the first**: I thought it was pretty clear from the way we have been doing things, but surprised to learn how _ambiguous_ it is in the text itself, so I think we should clear it up. There are two possible reads here: * (Wrong) Purpose "any" can be used to mean it can be used as if it were tagged with any of the other prescribed purposes; i.e. `purpose: "any"` is equivalent to `purpose: "any maskable monochrome"`. This might be the most obvious read (given the name), but it is emphatically _not_ how we interpret it, nor should it be. * (Right) Purpose "any" means the icon can be used in all the "usual" places in the user agent and operating system where another more specialized purpose is not needed. You can use it as a regular icon on the shelf or anywhere you like, but cannot use it in places where the special rules for maskable or monochrome apply. (This is the correct interpretation and we should make it explicitly clear.) This is complicated by the fact that a user agent can technically do whatever it wants with an icon, for example, put the icon inside a circle, apply shadows, etc. But there should be SHOULD NOT requirements around applying treatments to icons that are only tagged with `purpose: "any"`: * User agents SHOULD NOT ignore the colour channel of a `purpose: "any"` icon and turn it into a silhouette, like you would a `purpose: "monochrome"` icon. We've tried this and it looks quite bad. You are explicitly required to do this for a monochrome icon, which a designer has provided for that purpose. But we shouldn't take a regular icon and treat it as a silhouette. * User agents SHOULD NOT crop any part of a `purpose: "any"` icon, e.g. inserting it into a masked shape like you would a `purpose: "maskable"` icon. An "any" icon has not been designed with any particular safe zone in mind, so designers expect every pixel of their icon to be displayed to the user. So there is actually a valid use for a `purpose: "any maskable"` which is that it's an explicit statement that "you can use this icon in normal contexts, but also feel free to mask it according to the safe zone rules"; however `purpose: "any"` (the default) should not be considered maskable. Similarly, `purpose: "any monochrome"` would say "you can use the colour of this icon or just treat it as a silhouette", but without the explicit "monochrome" the UA shouldn't be able to ignore the colour. **On the second**: I actually don't think it's that necessary for us to exactly specify what "most appropriate" means in terms of icon sizes. The user agent is presented with a bunch of icons of different sizes. It can be left as an implementation detail which to pick. (e.g. on some systems you might want to choose the one that's closest to the size you need but larger; on other systems you may be forced to pick exactly one icon to represent your app, so you pick the largest one and store it and the OS scales it; others may have a maximum icon size, so you have to pick the largest one smaller than that, etc.) We shouldn't be prescriptive about icon size selection. -- Reply to this email directly or view it on GitHub: https://github.com/w3c/manifest/issues/1094#issuecomment-1647269441 You are receiving this because you are subscribed to this thread. Message ID: <w3c/manifest/issues/1094/1647269441@github.com>
Received on Monday, 24 July 2023 06:05:37 UTC