From 371b998525c2638a08eae13b70f88c5c4a17fc97 Mon Sep 17 00:00:00 2001 From: Estelle Weyl Date: Tue, 15 Nov 2022 18:33:09 -0800 Subject: [PATCH 1/5] image performance --- .../web/api/svgimageelement/decoding/index.md | 2 +- files/en-us/web/html/element/img/index.md | 2 ++ .../graphics_for_responsive_sites/index.md | 18 +++++++++--------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/files/en-us/web/api/svgimageelement/decoding/index.md b/files/en-us/web/api/svgimageelement/decoding/index.md index 82500e192091dd7..657c0a4dcd57b66 100644 --- a/files/en-us/web/api/svgimageelement/decoding/index.md +++ b/files/en-us/web/api/svgimageelement/decoding/index.md @@ -47,4 +47,4 @@ img.src = 'img/logo.svg'; ## See also -- [\: The Image Embed element](/en-US/docs/Web/HTML/Element/img) +- [``: The Image Embed element](/en-US/docs/Web/HTML/Element/img) diff --git a/files/en-us/web/html/element/img/index.md b/files/en-us/web/html/element/img/index.md index 3bbb29291b24562..ddfa435fa5c489e 100644 --- a/files/en-us/web/html/element/img/index.md +++ b/files/en-us/web/html/element/img/index.md @@ -131,6 +131,8 @@ This element includes the [global attributes](/en-US/docs/Web/HTML/Global_attrib - {{htmlattrdef("height")}} - : The intrinsic height of the image, in pixels. Must be an integer without a unit. + + > **Note:** Including `height` and [`width`](#attr-width) enables the aspect ratio of the image to be calculated by the browser prior to the image being loaded. This aspect ratio is used to reserve the space needed to display the image, reducing or even preventing a layout shift when the image is downloaded and painted to the screen. Reducing layout shift is a major component of good user experience and web performance. - {{htmlattrdef("ismap")}} - : This Boolean attribute indicates that the image is part of a [server-side map](https://en.wikipedia.org/wiki/Image_map#Server-side). If so, the coordinates where the user clicked on the image are sent to the server. diff --git a/files/en-us/web/progressive_web_apps/responsive/graphics_for_responsive_sites/index.md b/files/en-us/web/progressive_web_apps/responsive/graphics_for_responsive_sites/index.md index 9d0d8106cab220c..f7d9c065d749083 100644 --- a/files/en-us/web/progressive_web_apps/responsive/graphics_for_responsive_sites/index.md +++ b/files/en-us/web/progressive_web_apps/responsive/graphics_for_responsive_sites/index.md @@ -21,31 +21,31 @@ In general, you will use mostly the same graphical assets for different layouts [CSS media queries](/en-US/docs/Web/CSS/Media_Queries/Using_media_queries) allow us to serve different CSS rules dependent on viewport dimensions, and you should consider using [mobile first media queries](https://www.peachpit.com/articles/article.aspx?p=1960918) where possible. This means that the default layout before any media queries are encountered in the CSS is the small screen/mobile layout, not the wide screen/desktop layout. So when the page is loaded on a mobile device, the mobile will only download the mobile assets, and not the desktop resource assets. -Making [HTML ``s](/en-US/docs/Web/HTML/Element/img) responsive is not as easy, as there is currently no native mechanism to serve different HTML images depending on context. There are a number of workarounds, but none of them are perfect right now. For an overview of what's available, read [Choosing a responsive image solution](https://www.smashingmagazine.com/2013/07/choosing-a-responsive-image-solution/). +While the pixel size of an image resource doesn't change, there are a few ways to make [HTML ``s](/en-US/docs/Web/HTML/Element/img)responsive. Setting `max-width: 100%` on an image allows the image to render at its normal size when smace allows, without causing pixelation, while ensuring the image never exceeds the width of it's parent container. Different image files can be served depending on viewport size using the [`srcset`](/en-US/docs/Web/HTML/Element/img#attr-srcset) and [`sizes`](/en-US/docs/Web/HTML/Element/img#attr-sizes) attributes. The {{HTMLElement('picture')}} element can contain multiple {{HTMLElement('source')}} elements and one `` element to offer alternative versions of an image for different display/device scenarios. Always make sure your images include alternative text by including an [`alt`](/en-US/docs/Web/HTML/Element/img#attr-alt) attribute. ## Coping with different resolutions -In this section we'll review different strategies for dealing with getting images to work across devices with different resolutions. The issue here is that raster images, when rendered on high res devices, are in danger of appearing tiny because the same number of pixels is being shown in a much smaller screen space. Most hi res devices apply a default zoom factor to the whole web page so that the content is a bit more legible, but the downside of this is that the images in question start to look pixelated and ugly because they have been zoomed in. +In this section we'll review different strategies for dealing with getting images to work across devices with different screen resolutions. The issue here is that raster images, when rendered on high res devices, are in danger of appearing tiny because the same number of pixels is being shown in a much smaller screen space. Most hi res devices apply a default zoom factor to the whole web page so that the content is a bit more legible, but the downside of this is that the images in question start to look pixelated and ugly because they have been zoomed in. - high res and low res image copies - : One option here is to create a hi res and a low res set of images, then use [resolution media queries](/en-US/docs/Web/CSS/resolution) to serve the hi res images only to hi res devices. - Programmatic images - - : You should also try to use programmatic/vector graphics as much as possible, as they theoretically scale infinitely so will still look crisp at high resolutions. You could use CSS properties for generating effects like [drop shadows](/en-US/docs/Web/CSS/box-shadow), [gradients](/en-US/docs/Web/CSS/CSS_Images/Using_CSS_gradients) and [rounded corners](/en-US/docs/Web/CSS/border-radius), and you could also consider using [SVG](/en-US/docs/Web/SVG) for other UI elements, instead of raster graphics formats. The downsides here are that CSS properties and SVG don't work on old browsers such as IE6-8 (although Polyfills are available, and you could build in fallbacks), and SVG isn't suitable for high detail images, such as photographs. + - : You should also try to use programmatic/vector graphics as much as possible, as they theoretically scale infinitely so will still look crisp at high resolutions. You could use CSS properties for generating effects like [drop shadows](/en-US/docs/Web/CSS/box-shadow), [gradients](/en-US/docs/Web/CSS/CSS_Images/Using_CSS_gradients) and [rounded corners](/en-US/docs/Web/CSS/border-radius), and you could also consider using [SVG](/en-US/docs/Web/SVG) for other UI elements, instead of raster graphics formats. Raster images within SVG files do have the same issues as other image types. - Using fonts for icons - - : Another technique to consider is using [web fonts](/en-US/docs/Web/CSS/@font-face) for icons. Text is infinitely scalable on the web, and you can also use CSS text properties to style your web font icons, such as [text-shadow](/en-US/docs/Web/CSS/text-shadow) and [color](/en-US/docs/Web/Guide/CSS/Getting_started/Color). Making your own font file can be a bit fiddly, but there are a number of good icon font services available. + - : Another technique is [web fonts](/en-US/docs/Web/CSS/@font-face) for icons. Text is infinitely scalable on the web, and you can also use CSS text properties to style your web font icons, such as [`text-shadow`](/en-US/docs/Web/CSS/text-shadow) and [`color`](/en-US/docs/Web/Guide/CSS/Getting_started/Color). Unfortunately, icon fonts are not by default accessible. If the user uses their own font, such as with the Dyslexia extension, your icons may not show. Additionally, every icon needs to be nested in an element that provides it with an accessible name, such as with [`aria-label`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label). ## Interactive images If your images need to feature some level of interactivity, such as links, other clickable areas, or animation, there are a number of options available. - CSS - - : As well as adding programmatic graphical effects to links (and anywhere else you might want them), CSS also allows you to write declarative [animations](/en-US/docs/Web/CSS/CSS_Animations/Using_CSS_animations) and [transitions](/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions). These may not be supported in older browsers like IE6-8, but they generally degrade gracefully, are fairly easy to write, and become much more flexible and powerful when combined with JavaScript and other technologies. + - : As well as adding programmatic graphical effects to links (and anywhere else you might want them), CSS also allows you to write declarative [animations](/en-US/docs/Web/CSS/CSS_Animations/Using_CSS_animations) and [transitions](/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions). - JavaScript - - : [JavaScript](/en-US/docs/Web/JavaScript) has functions that enable developers to create animations, and any other type of interactivity you want. It is very powerful when combined with other technologies, although its complexity is a barrier for non-developers. + - : [JavaScript](/en-US/docs/Web/JavaScript) has functions that enable developers to create effects based on interactions. It is very powerful when combined with other technologies, although its complexity is a barrier for non-developers. - SVG - - : [SVG](/en-US/docs/Web/SVG), just like [HTML](/en-US/docs/Web/HTML)/[CSS](/en-US/docs/Web/CSS/), can be manipulated via JavaScript. So adding interactivity is not difficult. You can also add links directly into SVG and can create animations using [SMIL](/en-US/docs/Web/SVG/SVG_animation_with_SMIL) (Synchronized Multimedia Integration Language). + - : [SVG](/en-US/docs/Web/SVG), just like [HTML](/en-US/docs/Web/HTML)/[CSS](/en-US/docs/Web/CSS/), can be manipulated with CSS and via JavaScript. So adding interactivity is not difficult. You can also add links directly into SVG and can create animations using [SMIL](/en-US/docs/Web/SVG/SVG_animation_with_SMIL) (Synchronized Multimedia Integration Language). - WebGL/Canvas - - : You can create a canvas to draw interactive graphics on using the HTML \ element, then use the Canvas API to create shapes, lines, import image files, create text, do compositing operations, and much more. Standard JavaScript can then be used to animate the image output, etc. You can create 2D imagery using the regular 2D canvas context, or 3D imagery using the more nascent [WebGL API](/en-US/docs/Web/API/WebGL_API). + - : You can create a canvas to draw interactive graphics on using the HTML {{HTMLElement('canvas')}} element, then use the Canvas API to create shapes, lines, import image files, create text, do compositing operations, and much more. Standard JavaScript can then be used to animate the image output, etc. You can create 2D imagery using the regular 2D canvas context, or 3D imagery using the more nascent [WebGL API](/en-US/docs/Web/API/WebGL_API). - Canvas is very powerful, but it needs to be used with caution. It is good for the visuals of games and complex data visualizations, but for standard user interface elements it is not very efficient. In addition, Canvases are just raster images, so the text created inside them is not accessible, plus they don't scale well. + Canvas is very powerful, but it needs to be used with caution. It is good for the visuals of games and complex data visualizations, but for standard user interface elements it is not very efficient and completely inaccessible to screen reader users. Canvases are just raster images, so the text created inside them is not accessible. Also, they don't scale well. From 7d19c3761005e40a3c5523ac108072206d7089bd Mon Sep 17 00:00:00 2001 From: Estelle Weyl Date: Tue, 15 Nov 2022 18:39:18 -0800 Subject: [PATCH 2/5] add image --- .../learn/performance/multimedia/ar-guide.jpg | Bin 0 -> 83652 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 files/en-us/learn/performance/multimedia/ar-guide.jpg diff --git a/files/en-us/learn/performance/multimedia/ar-guide.jpg b/files/en-us/learn/performance/multimedia/ar-guide.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c54d8795bec1f95a180c5dd9752696dbf3c5d428 GIT binary patch literal 83652 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 Date: Tue, 15 Nov 2022 18:39:36 -0800 Subject: [PATCH 3/5] update learn --- .../learn/performance/multimedia/index.md | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/files/en-us/learn/performance/multimedia/index.md b/files/en-us/learn/performance/multimedia/index.md index 8d25f5bb2c78e03..c4a8356a8f8081b 100644 --- a/files/en-us/learn/performance/multimedia/index.md +++ b/files/en-us/learn/performance/multimedia/index.md @@ -121,10 +121,37 @@ The first thing to check is that your content images use `` or `` Secondly, with the adoption of Priority Hints, you can control the priority further by adding an `importance` attribute to your image tags. An example use case for priority hints on images are carousels where the first image is a higher priority than the subsequent images. -### Rendering strategy +### Rendering strategy: preventing jank when loading images As images are loaded asynchronously and continue to load after the first paint, if their dimensions aren't defined before load, they can cause reflows to the page content. For example, when text gets pushed down the page by images loading. For this reason, it's critical that you set `width` and `height` attributes so that the browser can reserve space for them in the layout. +When the `width` and `height` attributes of an image are included on an HTML {{htmlelement("img")}} element, the aspect ratio of the image can be calculated by the browser prior to the image being loaded. This aspect ratio is used to reserve the space needed to display the image, reducing or even preventing a layout shift when the image is downloaded and painted to the screen. Reducing layout shift is a major component of good user experience and web performance. + +Browsers begin rendering content as HTML is parsed, often before all assets, including images, are downloaded. Including dimensions enable browsers to reserve a correctly-sized placeholder box for each image to appear in when the images are loaded when first rendering the page. + +![Two screenshots the first without an image but with space reserved, the second showing the image loaded into the reserved space.](ar-guide.jpg) + +Without the `width` and `height` attributes, no placeholder space is created, creating a noticeable {{glossary('jank')}}, or layout shift, in the page when the image loads after the page is rendered. Page reflow and repaints are performance and usability issues. + +In responsive designs, when a container is narrower than an image, the following CSS is generally used to keep images from breaking out of their containers: + +```css +img { + max-width: 100%; + height: auto; +} +``` + +While useful for responsive layouts, this causes jank when width and height information are not included, as if no height information is present when the `` element is parsed but before the image has loaded, this CSS effectively has set the height to 0. When the image loads after the page has been initially rendered to the screen, the page reflows and repaints creating a layout shift as it creates space for the newly determined height. + +Browsers have a mechanism for sizing images before the actual image is loaded. When an ``, `