<p></p>
<p dir="auto">Diary and other user provided content frequently includes rather large external images, which slows down page loading. We could force lazy loading of these assets by adding a loading="lazy" attribute to img tags, as described here: <a href="https://developer.mozilla.org/en-US/docs/Web/Performance/Lazy_loading" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/Performance/Lazy_loading</a></p>
<p dir="auto">The change is rather small, but I'm not sure if this doesn't cause unwanted side effects. Does anyone have any opinions on this topic?</p>
<div class="highlight highlight-source-ruby" dir="auto"><pre class="notranslate"><span class="pl-en">diff</span> --<span class="pl-en">git</span> <span class="pl-en">a</span>/<span class="pl-en">config</span>/<span class="pl-en">initializers</span>/<span class="pl-en">sanitize</span><span class="pl-kos">.</span><span class="pl-en">rb</span> <span class="pl-en">b</span>/<span class="pl-en">config</span>/<span class="pl-en">initializers</span>/<span class="pl-en">sanitize</span><span class="pl-kos">.</span><span class="pl-en">rb</span>
<span class="pl-en">index</span> <span class="pl-en">c9d6a5dbac</span>..<span class="pl-en">f8f2b784d9</span> <span class="pl-c1">100644</span>
--- <span class="pl-en">a</span>/<span class="pl-en">config</span>/<span class="pl-en">initializers</span>/<span class="pl-en">sanitize</span><span class="pl-kos">.</span><span class="pl-en">rb</span>
+++ <span class="pl-en">b</span>/<span class="pl-en">config</span>/<span class="pl-en">initializers</span>/<span class="pl-en">sanitize</span><span class="pl-kos">.</span><span class="pl-en">rb</span>
@@ -<span class="pl-c1">2</span><span class="pl-kos">,</span><span class="pl-c1">6</span> +<span class="pl-c1">2</span><span class="pl-kos">,</span><span class="pl-c1">10</span> @@ <span class="pl-v">Sanitize</span>::<span class="pl-v">Config</span>::<span class="pl-c1">OSM</span> <span class="pl-c1">=</span> <span class="pl-v">Sanitize</span>::<span class="pl-v">Config</span><span class="pl-kos">.</span><span class="pl-en">merge</span><span class="pl-kos">(</span>
   <span class="pl-v">Sanitize</span>::<span class="pl-v">Config</span>::<span class="pl-c1">RELAXED</span><span class="pl-kos">,</span>
   <span class="pl-pds">:elements</span> <span class="pl-c1">=></span> <span class="pl-v">Sanitize</span>::<span class="pl-v">Config</span>::<span class="pl-c1">RELAXED</span><span class="pl-kos">[</span><span class="pl-pds">:elements</span><span class="pl-kos">]</span> - <span class="pl-kos">%w[</span><span class="pl-s">div</span> <span class="pl-s">style</span><span class="pl-kos">]</span><span class="pl-kos">,</span>
   <span class="pl-pds">:remove_contents</span> <span class="pl-c1">=></span> <span class="pl-kos">%w[</span><span class="pl-s">script</span> <span class="pl-s">style</span><span class="pl-kos">]</span><span class="pl-kos">,</span>
+  <span class="pl-pds">:attributes</span> <span class="pl-c1">=></span> <span class="pl-v">Sanitize</span>::<span class="pl-v">Config</span><span class="pl-kos">.</span><span class="pl-en">merge</span><span class="pl-kos">(</span>
+    <span class="pl-v">Sanitize</span>::<span class="pl-v">Config</span>::<span class="pl-c1">RELAXED</span><span class="pl-kos">[</span><span class="pl-pds">:attributes</span><span class="pl-kos">]</span><span class="pl-kos">,</span>
+    <span class="pl-s">"img"</span> <span class="pl-c1">=></span> <span class="pl-v">Sanitize</span>::<span class="pl-v">Config</span>::<span class="pl-c1">RELAXED</span><span class="pl-kos">[</span><span class="pl-pds">:attributes</span><span class="pl-kos">]</span><span class="pl-kos">[</span><span class="pl-s">"img"</span><span class="pl-kos">]</span> + <span class="pl-kos">[</span><span class="pl-s">"loading"</span><span class="pl-kos">]</span>
+  <span class="pl-kos">)</span><span class="pl-kos">,</span>
   <span class="pl-pds">:transformers</span> <span class="pl-c1">=></span> <span class="pl-en">lambda</span><span class="pl-kos"></span> <span class="pl-k">do</span> |<span class="pl-s1">env</span>|
     <span class="pl-s1">style</span> <span class="pl-c1">=</span> <span class="pl-s1">env</span><span class="pl-kos">[</span><span class="pl-pds">:node</span><span class="pl-kos">]</span><span class="pl-kos">[</span><span class="pl-s">"style"</span><span class="pl-kos">]</span> || <span class="pl-s">""</span>
 
@@ -<span class="pl-c1">24</span><span class="pl-kos">,</span><span class="pl-c1">5</span> +<span class="pl-c1">28</span><span class="pl-k"></span><span class="pl-kos">,</span><span class="pl-c1">7</span> @@ <span class="pl-v">Sanitize</span>::<span class="pl-v">Config</span>::<span class="pl-c1">OSM</span> <span class="pl-c1">=</span> <span class="pl-v">Sanitize</span>::<span class="pl-v">Config</span><span class="pl-kos">.</span><span class="pl-en">merge</span><span class="pl-kos">(</span>
 
       <span class="pl-en">env</span><span class="pl-kos">[</span><span class="pl-pds">:node</span><span class="pl-kos">]</span><span class="pl-kos">[</span><span class="pl-s">"rel"</span><span class="pl-kos">]</span> <span class="pl-c1">=</span> <span class="pl-en">rel</span><span class="pl-kos">.</span><span class="pl-en">split</span><span class="pl-kos">.</span><span class="pl-en">select</span> <span class="pl-kos">{</span> |<span class="pl-s1">r</span>| <span class="pl-s1">r</span> == <span class="pl-s">"me"</span> <span class="pl-kos">}</span><span class="pl-kos">.</span><span class="pl-en">append</span><span class="pl-kos">(</span><span class="pl-s">"nofollow"</span><span class="pl-kos">,</span> <span class="pl-s">"noopener"</span><span class="pl-kos">,</span> <span class="pl-s">"noreferrer"</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">sort</span><span class="pl-kos">.</span><span class="pl-en">join</span><span class="pl-kos">(</span><span class="pl-s">" "</span><span class="pl-kos">)</span>
     <span class="pl-en">end</span>
+
+    <span class="pl-en">env</span><span class="pl-kos">[</span><span class="pl-pds">:node</span><span class="pl-kos">]</span><span class="pl-kos">[</span><span class="pl-s">"loading"</span><span class="pl-kos">]</span> <span class="pl-c1">=</span> <span class="pl-s">"lazy"</span> <span class="pl-k">if</span> <span class="pl-en">env</span><span class="pl-kos">[</span><span class="pl-pds">:node_name</span><span class="pl-kos">]</span> == <span class="pl-s">"img"</span>
   <span class="pl-k">end</span>
 <span class="pl-kos">)</span></pre></div>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/issues/5601">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAK2OLNWA2PA4C7ZPZY3YSL2N7XUZAVCNFSM6AAAAABWNGW266VHI2DSMVQWIX3LMV43ASLTON2WKOZSHAZDQNZTGU2TCNY">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAK2OLOVMZGBD7EPP5IGI2T2N7XUZA5CNFSM6AAAAABWNGW266WGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHKRGYUDU.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><openstreetmap/openstreetmap-website/issues/5601</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/openstreetmap-website/issues/5601",
"url": "https://github.com/openstreetmap/openstreetmap-website/issues/5601",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>