Skip to content
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

Some questions and points about the images in the current spec #744

Closed
ghost opened this issue Dec 1, 2018 · 2 comments
Closed

Some questions and points about the images in the current spec #744

ghost opened this issue Dec 1, 2018 · 2 comments

Comments

@ghost
Copy link

ghost commented Dec 1, 2018

I have some quick questions and points about the images/logos in the current spec, these are as follows:

splash_screens

1.a) Have you removed "splash_screens" from the Spec?

1.b) If so, why do you not have a section in the Spec under a title of "Deprecation", and add Splash Screens to it. Currently if you do a search for the word "Splash" there is no mention of it in the Spec.

1.c) It seems like the Spec has removed Splash Screens as there are no mentions for it now, yet Browsers are still quoting to use it. But in a different method from the original concept, for example Google saying the following advice:

"Icons used for the splash screen
Chrome will choose the icon that closely matches the 128dp icon for that device. 128dp is the ideal size for the image on the splash screen, and means no scaling will be applied to the image.

Again, providing a 192px and a 512px icon will be sufficient for most cases, but you can provide additional icons as necessary."

The link is found here: https://developers.google.com/web/fundamentals/web-app-manifest/#splash-screen

They suggest using "icons" which they will use to generate the Splash screens instead. This would save the PWA from loading big splash image screen sizes.

Maybe this method could be added to the Spec?

Icons

2.a) Currently there are no recommendations about which preferred icon sizes, users should use? From experience I can say that most Browser vendors are using the following three sizes now:

144px by 144px
192px by 192px
512px by 512px

Please note that the following three sizes are almost "required" now for developers to make their manifest file pass in all modern browsers. You should mention this in the Spec. to help people create a Browser vendor passing Manifest.

2.b) What are your recommended icon image formats?

I am hoping you will say these: .jpg and .jpeg and .png and .svg and .webp

You should mention accepted icon image formats in the spec. I would think if someone created a Free Lossless Image Format (FLIF) or Better Portable Graphics (BPG) for example they would not pass.

2.c) All the Browsers are suggesting to use .png image format right now. This is a big problem with Google suggesting to use a 512px by 512px png icon. This makes the file size very big and gives a bad performance for people on a mobile device using up their data plans. You should add some kind of rules to stop that and say to use a better icon format for larger icons.

Maybe something like, any icon over 256x256 you should only use .jpg or .webp or .svg and can use .png under 256x256.

See here for Google's recommendation (To use a 512px icon): https://developers.google.com/web/tools/lighthouse/audits/custom-splash-screen#recommendations

screenshots

3.a) Do you have any recommendation screen sizes for these images? That would cover most devices on the market today.

3.b) Have you taken into consideration the DPR (device pixel ratio) of screen sizes into your API.

3.c) Would it be a good idea to have some sample examples in the Spec under the screenshots section, the only example I could find was found here: https://github.com/w3c/manifest/blob/gh-pages/index.html

It says the following code example:

"screenshots": [{
              "src": "screenshots/in-game-1x.jpg",
              "sizes": "640x480",
              "type": "image/jpeg"
            },{
              "src": "screenshots/in-game-2x.jpg",
              "sizes": "1280x920",
              "type": "image/jpeg"
            }]

Would it be a good idea to add an example to the spec and add the "purpose" line of code to it giving the following example:

"screenshots": [{
              "src": "screenshots/in-game-1x.jpg",
              "purpose": "any",
              "sizes": "640x480",
              "type": "image/jpeg"
            },{
              "src": "screenshots/in-game-2x.jpg",
              "purpose": "any",
              "sizes": "1280x920",
              "type": "image/jpeg"
            }]

3.d) How would the Spec handle say multi-resolutions, for example: 4K refers to one of two high definition resolutions: 3840 x 2160 pixels or 4096 x 2160 pixels.

density

  1. Has this also been removed from the Spec? Example code:
    "splash_screens": [{
      "src": "https://www.example.com/1920x1080.jpg",
      "purpose": "any", 
      "sizes": "320x240",
      "type": "image/jpg",
      "density": 1
    }]

If so, why not have that in a section in the Spec under a title of "Deprecation". Because if you do a search in the Spec there is no mention of "density" anymore!

Draft Date

  1. This Spec has changed so much over time, is there any date when the Spec will become more stable. Over time I have had to update and change my manifest files way too many times now.

Sorry for such a long post - I wanted to try and cover all these important questions and points and hope in some way I have added a small bit of value to your repo.

I look forward to any answers which can help me create the correct manifest.

@ghost ghost changed the title Are Splash Screens no more and we to use screenshots? Some questions and points about the images in the current spec Dec 2, 2018
@mgiuca
Copy link
Collaborator

mgiuca commented Dec 3, 2018

splash_screens

There has never been a splash_screens member, nor have any browsers (that I know of) ever implemented such a thing.

Chrome makes its own splash screens by generating them from icons, but this a UI feature of one browser. Chrome documents it in the link you supplied; we don't document browser-specific UI in the manifest spec. I don't think it's appropriate to codify this in the spec.

Do not confuse this with screenshots. Those are completely unrelated (you wouldn't want a splash screen image to show up in a store as a screenshot, or vice versa).

Icons

The idea is that you supply icons of any size you want, and the user agent picks the ones it wants to use. Some browsers (like Chrome) specify icons they expect, but that doesn't need to be codified in the spec. Doing so would unnecessarily limit us from expanding the set of icons in the future.

I don't think Chrome has requirements of any specific icon size. To install an app, it requires some minimum (I think 144) but that is a proprietary installation requirement, not a requirement for processing the manifest.

screenshots

Similar to icons, you should just supply whatever sizes you want, and storefronts will pick the ones they want to display.

I don't actually know of any processors that use the screenshots tag (maybe the Microsoft Store?)

density

Where is that splash_screens example from? I don't think this has ever been specced or implemented, but it may have been discussed somewhere.

Draft Date

It's true. Something we discussed at W3C TPAC in October is bringing this spec to a more stable place, like a W3C Candidate Recommendation. It's changed a lot when basically only Chrome was implementing. Now that we have essentially 4 major implementations, it is a lot harder to change, so you should expect to see a lot less breakage in the future.

Hope this answers the questions. Closing the issue since this isn't actionable.

@mgiuca mgiuca closed this as completed Dec 3, 2018
@ghost
Copy link
Author

ghost commented Dec 3, 2018

@mgiuca Thank you for taking your time to answer all my points, yes that helps a lot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant