<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nima Jafari</title>
    <description>The latest articles on DEV Community by Nima Jafari (@nimajafari).</description>
    <link>https://dev.to/nimajafari</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1237326%2Fe1f17bf2-710e-48ea-bd07-9680570c593f.jpg</url>
      <title>DEV Community: Nima Jafari</title>
      <link>https://dev.to/nimajafari</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nimajafari"/>
    <language>en</language>
    <item>
      <title>Stop MIME Sniffing with nosniff; Why SEO Pros Should Care</title>
      <dc:creator>Nima Jafari</dc:creator>
      <pubDate>Tue, 12 Aug 2025 19:07:27 +0000</pubDate>
      <link>https://dev.to/nimajafari/stop-mime-sniffing-with-nosniff-why-seo-pros-should-care-42ia</link>
      <guid>https://dev.to/nimajafari/stop-mime-sniffing-with-nosniff-why-seo-pros-should-care-42ia</guid>
      <description>&lt;p&gt;In technical SEO, we often obsess over speed, structured data, indexability, and crawlability.&lt;/p&gt;

&lt;p&gt;But there’s a lesser-known HTTP header that won’t directly boost rankings, yet can strengthen your site’s security posture and help you pass important security audits:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;X-Content-Type-Options: nosniff&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;While "X-Content-Type-Options: nosniff" primary purpose is to stop browsers from MIME sniffing (guessing the type of a file when the Content-Type is missing or wrong), its presence can indirectly support SEO by improving security credibility, avoiding certain browser warnings, and helping your site score better in automated audits like Lighthouse and securityheaders.com.&lt;/p&gt;

&lt;h2&gt;
  
  
  What problem does it solve?
&lt;/h2&gt;

&lt;p&gt;Browsers sometimes try to “sniff” the file type of a resource rather than trusting the server’s Content-Type header. This can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Introduce security risks (e.g., running untrusted scripts).&lt;/li&gt;
&lt;li&gt;Leads to blocked resources in modern browsers when the type doesn’t match.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By sending:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;X-Content-Type-Options: nosniff&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;you tell the browser: “If the type is wrong, block it, don’t guess.”&lt;/p&gt;

&lt;h2&gt;
  
  
  How to check HTTP header
&lt;/h2&gt;

&lt;p&gt;You can easily check HTTP headers using Google Chrome &lt;strong&gt;DevTools&lt;/strong&gt; or using &lt;strong&gt;curl&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google Chrome DevTools
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open your site in Chrome&lt;/li&gt;
&lt;li&gt;Press F12/Option + ⌘ + I, or right-click → “Inspect”&lt;/li&gt;
&lt;li&gt;Go to the Network tab&lt;/li&gt;
&lt;li&gt;Refresh the page&lt;/li&gt;
&lt;li&gt;Click any resource and check the Headers panel&lt;/li&gt;
&lt;li&gt;Look for: X-Content-Type-Options: nosniff&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5cfgfrxbzglknlmxfg7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5cfgfrxbzglknlmxfg7.jpeg" alt="check X-Content-Type-Options HTTP headers using Google Chrome DevTools" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Command line
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;curl -I https://example.com&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;✅ If it’s missing, time to add it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Implement
&lt;/h2&gt;

&lt;p&gt;Adding X-Content-Type-Options: nosniff is quick and requires only a &lt;strong&gt;server&lt;/strong&gt; or &lt;strong&gt;application configuration&lt;/strong&gt; change. Below are examples for common environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Apache
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;IfModule mod_headers.c&amp;gt;&lt;br&gt;
   Header set X-Content-Type-Options "nosniff"&lt;br&gt;
&amp;lt;/IfModule&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Nginx
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;add_header X-Content-Type-Options nosniff;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PHP
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;header("X-Content-Type-Options: nosniff");&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Node.js (Express)
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;app.use((req, res, next) =&amp;gt; {&lt;br&gt;
  res.setHeader('X-Content-Type-Options', 'nosniff');&lt;br&gt;
  next();&lt;br&gt;
});&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Takeaway
&lt;/h2&gt;

&lt;p&gt;X-Content-Type-Options: nosniff is a small, easy-to-implement header that plays a role in site security, trustworthiness, and audit readiness.&lt;/p&gt;

&lt;p&gt;It won’t boost rankings, but it’s part of delivering the technical quality and professionalism that modern SEO clients expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; Pair nosniff with other headers like Strict-Transport-Security &lt;strong&gt;(HSTS)&lt;/strong&gt; and Content-Security-Policy &lt;strong&gt;(CSP)&lt;/strong&gt; for a well-rounded security setup. Security and SEO often overlap more than most people think.&lt;/p&gt;

</description>
      <category>httpheader</category>
      <category>technicalseo</category>
      <category>nosniff</category>
      <category>mimesniffing</category>
    </item>
    <item>
      <title>The Changes tab in Google Chrome DevTools</title>
      <dc:creator>Nima Jafari</dc:creator>
      <pubDate>Mon, 16 Sep 2024 11:26:26 +0000</pubDate>
      <link>https://dev.to/nimajafari/the-changes-tab-in-google-chrome-devtools-1kg7</link>
      <guid>https://dev.to/nimajafari/the-changes-tab-in-google-chrome-devtools-1kg7</guid>
      <description>&lt;p&gt;Working as a web developer always involves checking various elements which can become overwhelming when you make many changes while inspecting website elements in a browser and then by a simple page reload, all of them disappear. Google Chrome has a related feature, the “Changes” tab available from Chrome 65 which can become helpful in this case. With this feature, you will be able to see the changes you have made even after reloading the page. In this article, you will read more about how to enable this feature in the Google Chrome browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does the Changes tab in DevTools do?
&lt;/h2&gt;

&lt;p&gt;The Changes tab in Google Chrome DevTools is a feature with which you will be able to track the changes that you make across the page loads. By using the Changes tab, you can see the changes that you made in the:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HTML&lt;/strong&gt; in Sources with &lt;strong&gt;enabled Local Overrides&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS&lt;/strong&gt; in &lt;strong&gt;Elements, Styles column&lt;/strong&gt;, or &lt;strong&gt;Sources&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt; in &lt;strong&gt;Sources&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What is Local Overrides and how to enable it?
&lt;/h3&gt;

&lt;p&gt;The Local Overrides feature in Google Chrome lets you keep the changes that you make across page loads. Therefore, there is no need to make changes every time after each page reloads. By enabling this option in DevTools, you make a local directory on your end where all the changes are saved. While DevTools is open, each time you reload a page, the browser uses the local file that has been already saved on your device instead of network resources to show you the changes made by you. To enable Local Overrides in the Google Chrome DevTools, you can follow the steps below:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;&lt;em&gt;DevTools &amp;gt; Sources&lt;/em&gt;&lt;/strong&gt; tab

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows or Linux:&lt;/strong&gt; F12 &lt;strong&gt;OR&lt;/strong&gt; Ctrl + Shift + I &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mac:&lt;/strong&gt; Fn + F12 &lt;strong&gt;OR&lt;/strong&gt; Cmd + Option + I&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;&lt;em&gt;Overrides&lt;/em&gt;&lt;/strong&gt; from the left column.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;&lt;em&gt;Select folders for overrides&lt;/em&gt;&lt;/strong&gt; and choose a directory on your end to save files.&lt;/li&gt;
&lt;li&gt;Click on the &lt;strong&gt;&lt;em&gt;Allow&lt;/em&gt;&lt;/strong&gt; in the message on the top of the page which shows the need to read and write access to your directory.
It is now ready to make your changes in DevTools and keep them even after reloading a page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq2zwbknmx7y7tpo2cl67.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq2zwbknmx7y7tpo2cl67.png" alt="Image description" width="375" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxwvl14023wu9lvkbs5jb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxwvl14023wu9lvkbs5jb.gif" alt="Image description" width="600" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to enable the Changes tab in DevTools?
&lt;/h2&gt;

&lt;p&gt;To enable the Changes tab in Google Chrome DevTools, there are two ways. &lt;br&gt;
&lt;strong&gt;Method 1:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;&lt;em&gt;DevTools &amp;gt; Sources&lt;/em&gt;&lt;/strong&gt; tab

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows or Linux:&lt;/strong&gt; F12 &lt;strong&gt;OR&lt;/strong&gt; Ctrl + Shift + I&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mac:&lt;/strong&gt; Fn + F12 &lt;strong&gt;OR&lt;/strong&gt; Cmd + Option + I&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Open the &lt;strong&gt;&lt;em&gt;Command&lt;/em&gt;&lt;/strong&gt; menu by pressing:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows or Linux:&lt;/strong&gt; Control+Shift+P&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mac:&lt;/strong&gt; Command+Shift+P &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Type &lt;em&gt;changes&lt;/em&gt; to find the Changes option, then press enter to enable it&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fidwszjtizmsfoh7p27tz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fidwszjtizmsfoh7p27tz.png" alt="Image description" width="623" height="90"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuiingm0gshfpjirq6d75.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuiingm0gshfpjirq6d75.gif" alt="Image description" width="600" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Method 2:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;&lt;em&gt;DevTools &amp;gt; Sources&lt;/em&gt;&lt;/strong&gt; tab

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows or Linux:&lt;/strong&gt; F12 &lt;strong&gt;OR&lt;/strong&gt; Ctrl + Shift + I&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mac:&lt;/strong&gt; Fn + F12 &lt;strong&gt;OR&lt;/strong&gt; Cmd + Option + I&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &lt;strong&gt;&lt;em&gt;3-dots icon&lt;/em&gt;&lt;/strong&gt; on the right side &lt;strong&gt;&lt;em&gt;&amp;gt; More tools &amp;gt; Changes&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0ad57e9wpj8l4czgtho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0ad57e9wpj8l4czgtho.png" alt="Image description" width="528" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5hfdgu5hsfwi0f0ei9g.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5hfdgu5hsfwi0f0ei9g.gif" alt="Image description" width="600" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to view changes in the Changes tab in DevTools?
&lt;/h2&gt;

&lt;p&gt;To observe the changes that you make on the page through DevTools:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Chrome DevTools&lt;/li&gt;
&lt;li&gt;Make a change (changes) in:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML&lt;/strong&gt; in the &lt;strong&gt;Sources&lt;/strong&gt; tab&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS&lt;/strong&gt; in the &lt;strong&gt;Elements tab, Styles column&lt;/strong&gt;, or in &lt;strong&gt;Sources&lt;/strong&gt; tab&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt; &lt;strong&gt;Sources&lt;/strong&gt; tab&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Open the &lt;strong&gt;&lt;em&gt;Changes tab&lt;/em&gt;&lt;/strong&gt; (you have earlier enabled it)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now you can view the changes that have been made that are highlighted in red and green.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rc1aidbdku7loaoy5tk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rc1aidbdku7loaoy5tk.png" alt="Image description" width="534" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to copy CSS changes in the Changes tab in DevTools?
&lt;/h2&gt;

&lt;p&gt;To &lt;strong&gt;copy&lt;/strong&gt; the CSS changes that you have made in the &lt;em&gt;Elements &amp;gt; Styles column&lt;/em&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;&lt;em&gt;Changes tab&lt;/em&gt;&lt;/strong&gt; in DevTools&lt;/li&gt;
&lt;li&gt;From the bottom of the tab, click on the &lt;strong&gt;&lt;em&gt;Copy icon&lt;/em&gt;&lt;/strong&gt; to copy CSS.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xgnivkg3wi5jnaqpu2x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xgnivkg3wi5jnaqpu2x.png" alt="Image description" width="534" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to revert file changes from the Changes tab?
&lt;/h2&gt;

&lt;p&gt;If you decide to revert changes that you have made whether in HTML, CSS, or JS, you can easily do it through the Changes tab. To do so, head over to the &lt;strong&gt;&lt;em&gt;Changes tab&lt;/em&gt;&lt;/strong&gt; in DevTools, then from the bottom of the tab, you will see a &lt;strong&gt;&lt;em&gt;revert icon&lt;/em&gt;&lt;/strong&gt;. By one time clicking on the icon, all changes will be reverted at once.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftt5h2e41m0u7z3jgqtzh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftt5h2e41m0u7z3jgqtzh.png" alt="Image description" width="534" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>googlechrome</category>
      <category>devtools</category>
      <category>tutorial</category>
      <category>developer</category>
    </item>
    <item>
      <title>Remote debugging using Safari on iOS devices with macOS</title>
      <dc:creator>Nima Jafari</dc:creator>
      <pubDate>Mon, 04 Mar 2024 06:47:40 +0000</pubDate>
      <link>https://dev.to/nimajafari/remote-debugging-using-safari-on-ios-devices-with-macos-16p5</link>
      <guid>https://dev.to/nimajafari/remote-debugging-using-safari-on-ios-devices-with-macos-16p5</guid>
      <description>&lt;p&gt;Apple's integration between macOS and iOS provides a native and efficient pathway for developers to debug web content directly on an iOS device from a macOS computer. This guide will cover the essential steps and tools required to set up a remote debugging session between Safari on an iOS device and a macOS computer.&lt;/p&gt;

&lt;p&gt;Before to start remote debugging:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enable &lt;strong&gt;&lt;em&gt;Develop&lt;/em&gt;&lt;/strong&gt; on your &lt;strong&gt;&lt;em&gt;Mac&lt;/em&gt;&lt;/strong&gt; Safari through &lt;strong&gt;&lt;em&gt;Safari Settings &amp;gt; Advanced Settings&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On your iOS device, head over to the &lt;strong&gt;&lt;em&gt;Settings &amp;gt; Safari&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Find the &lt;strong&gt;&lt;em&gt;Advanced&lt;/em&gt;&lt;/strong&gt; section, then enable &lt;em&gt;&lt;strong&gt;Web Inspector&lt;/strong&gt;&lt;/em&gt; there.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx2eymcyx6pwgnxg7uiyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx2eymcyx6pwgnxg7uiyr.png" alt="Image description" width="645" height="600"&gt;&lt;/a&gt;&lt;br&gt;
You can now start remote debugging:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connect your iOS device to your Mac using &lt;strong&gt;&lt;em&gt;a cable&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On the Safari browser on your iOS device, open the desired URL that you are going to debug.&lt;/li&gt;
&lt;li&gt;On your macOS system, from the &lt;strong&gt;&lt;em&gt;Develop menu&lt;/em&gt;&lt;/strong&gt; on Safari, find your &lt;strong&gt;&lt;em&gt;iOS device name&lt;/em&gt;&lt;/strong&gt; and click on the page that you have already opened on your phone or tablet.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ukojf76uu5xuoajjk0h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ukojf76uu5xuoajjk0h.jpg" alt="Image description" width="800" height="412"&gt;&lt;/a&gt;&lt;br&gt;
In the opened &lt;strong&gt;&lt;em&gt;Web Inspector&lt;/em&gt;&lt;/strong&gt;, you are able to debug the web page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5e5fxqq66g0ts8fdyf9n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5e5fxqq66g0ts8fdyf9n.jpg" alt="Image description" width="800" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, the remote debugging steps with an iOS device on a macOS system using the Safari browser on both sides was explained. &lt;br&gt;
It is a practical web page investigation method which provides your the possibility to find mobile issues including mobile-friendliness and user experience with an iPhone or iPad view. &lt;/p&gt;

&lt;p&gt;ℹ️ &lt;strong&gt;You may also want to read:&lt;/strong&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-android-devices-with-windows-2630"&gt;Remote debugging using Google Chrome on Android devices with Windows&lt;/a&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-firefox-on-android-devices-with-windows-2cf7"&gt;Remote debugging using Firefox on Android devices with Windows&lt;/a&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-ios-devices-with-macos-ca9"&gt;Remote debugging using Google Chrome on iOS devices with macOS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📝Resource: &lt;a href="https://www.oxyplug.com/optimization/ultimate-guide-to-remote-debugging-webpages/" rel="noopener noreferrer"&gt;https://www.oxyplug.com/optimization/ultimate-guide-to-remote-debugging-webpages/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>ios</category>
      <category>safari</category>
      <category>debug</category>
    </item>
    <item>
      <title>Remote debugging using Google Chrome on iOS devices with macOS</title>
      <dc:creator>Nima Jafari</dc:creator>
      <pubDate>Mon, 04 Mar 2024 06:47:32 +0000</pubDate>
      <link>https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-ios-devices-with-macos-ca9</link>
      <guid>https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-ios-devices-with-macos-ca9</guid>
      <description>&lt;p&gt;This guide focuses on the specifics of remote debugging using Google Chrome on iOS devices with macOS. Throughout this guide, we will explore the setup process, including the necessary tools and configurations required to establish a remote debugging session between your iOS device and macOS system using Google Chrome browser.&lt;br&gt;
First you need to make sure about:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;iOS version: 16.4 or greater&lt;/li&gt;
&lt;li&gt;Chrome version on your iOS phone or tablet: 115 or greater&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before you start remote debugging, on your macOS system:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Head over to the &lt;strong&gt;&lt;em&gt;Safari application settings &amp;gt; Advanced settings&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;&lt;em&gt;Develop&lt;/em&gt;&lt;/strong&gt; on Safari browser.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On your iOS device:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;&lt;em&gt;Google Chrome&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Go to the &lt;strong&gt;&lt;em&gt;Settings&lt;/em&gt;&lt;/strong&gt; section in the application.&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;&lt;em&gt;Web Inspector&lt;/em&gt;&lt;/strong&gt; in &lt;strong&gt;&lt;em&gt;Content Settings&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Relaunch the app to save the changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39285zh7ml848yekq0y0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39285zh7ml848yekq0y0.png" alt="Image description" width="423" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Now, start remote debugging:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connect your device with &lt;strong&gt;&lt;em&gt;a cable&lt;/em&gt;&lt;/strong&gt; to your Mac.&lt;/li&gt;
&lt;li&gt;On iOS device Google Chrome, open a URL that you want to debug.&lt;/li&gt;
&lt;li&gt;Look for the &lt;strong&gt;&lt;em&gt;Develop menu&lt;/em&gt;&lt;/strong&gt; on &lt;strong&gt;&lt;em&gt;Safari on your Mac&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;From the Develop menu, click on your &lt;strong&gt;&lt;em&gt;iOS device name&lt;/em&gt;&lt;/strong&gt;, then select the page which has been already opened on your iOS phone or tablet.&lt;/li&gt;
&lt;li&gt;The opened &lt;strong&gt;&lt;em&gt;Web Inspector&lt;/em&gt;&lt;/strong&gt; helps you debug the web page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkln256fbdl74yqkaa020.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkln256fbdl74yqkaa020.jpg" alt="Image description" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡In the Web Inspector, the mobile frame view, which is visible on Google Chrome mobile simulator, is not shown.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm2ie8dpk13e788u3msjl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm2ie8dpk13e788u3msjl.jpg" alt="Image description" width="800" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Whether you're troubleshooting a specific issue or aiming to optimize your site's mobile responsiveness and performance, mastering remote debugging with Google Chrome on iOS devices using macOS will equip you with the skills to ensure your web applications deliver a seamless user experience across iOS devices.&lt;/p&gt;

&lt;p&gt;ℹ️ You may also be interested to read:&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-android-devices-with-windows-2630"&gt;Remote debugging using Google Chrome on Android devices with Windows&lt;/a&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-firefox-on-android-devices-with-windows-2cf7"&gt;Remote debugging using Firefox on Android devices with Windows&lt;/a&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-safari-on-ios-devices-with-macos-16p5"&gt;Remote debugging using Safari on iOS devices with macOS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📝 Resource: &lt;a href="https://www.oxyplug.com/optimization/ultimate-guide-to-remote-debugging-webpages/" rel="noopener noreferrer"&gt;https://www.oxyplug.com/optimization/ultimate-guide-to-remote-debugging-webpages/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>googlechrome</category>
      <category>ios</category>
      <category>debug</category>
    </item>
    <item>
      <title>Remote debugging using Firefox on Android devices with Windows</title>
      <dc:creator>Nima Jafari</dc:creator>
      <pubDate>Mon, 04 Mar 2024 06:47:24 +0000</pubDate>
      <link>https://dev.to/nimajafari/remote-debugging-using-firefox-on-android-devices-with-windows-2cf7</link>
      <guid>https://dev.to/nimajafari/remote-debugging-using-firefox-on-android-devices-with-windows-2cf7</guid>
      <description>&lt;p&gt;It is possible to do remote debugging using the Firefox browser on Android devices like Google Chrome. Throughout this guide, we will explore the setup and configuration necessary to initiate a remote debugging session between Firefox on an Android device and Windows.&lt;/p&gt;

&lt;p&gt;To do so, you need an Android device and a Windows system. Before to start remote debugging, you need to enable &lt;strong&gt;&lt;em&gt;Developer Options&lt;/em&gt;&lt;/strong&gt; then &lt;strong&gt;&lt;em&gt;Remote debugging&lt;/em&gt;&lt;/strong&gt; on your Android device:&lt;/p&gt;

&lt;p&gt;1- Go to the &lt;strong&gt;&lt;em&gt;Settings &amp;gt; About phone&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
2- Find your phone’s &lt;strong&gt;&lt;em&gt;Build Number&lt;/em&gt;&lt;/strong&gt;. Its location may be different based on the Android device model and brand.&lt;br&gt;
3- &lt;strong&gt;&lt;em&gt;Tap 7 times&lt;/em&gt;&lt;/strong&gt; on the &lt;strong&gt;&lt;em&gt;Build Number&lt;/em&gt;&lt;/strong&gt; until the message “You are now a developer!” appears.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fge93o8ymwo1hmkut1b1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fge93o8ymwo1hmkut1b1g.png" alt="Image description" width="663" height="510"&gt;&lt;/a&gt;&lt;br&gt;
4- In &lt;strong&gt;&lt;em&gt;Developer Options&lt;/em&gt;&lt;/strong&gt; on your Android phone or tablet, turn on &lt;strong&gt;&lt;em&gt;Enable USB Debugging&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1fivpq1ua1zzrnlxx7e8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1fivpq1ua1zzrnlxx7e8.png" alt="Image description" width="361" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After enabling &lt;strong&gt;&lt;em&gt;Developer Options&lt;/em&gt;&lt;/strong&gt; and then &lt;strong&gt;&lt;em&gt;Remote debugging&lt;/em&gt;&lt;/strong&gt; on your Android device, follow the steps below to start debugging:&lt;/p&gt;

&lt;p&gt;1- On the debugging system (PC or laptop), open &lt;strong&gt;&lt;em&gt;about:debugging&lt;/em&gt;&lt;/strong&gt; on &lt;strong&gt;&lt;em&gt;Firefox&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
2- Activate USB debugging by pressing &lt;em&gt;&lt;strong&gt;Enable USB Devices&lt;/strong&gt;&lt;/em&gt; on Firefox.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrns6x0izxgi7jsyh7fm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrns6x0izxgi7jsyh7fm.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;br&gt;
3- Connect your Android device with a &lt;strong&gt;&lt;em&gt;USB cable&lt;/em&gt;&lt;/strong&gt; to the laptop or PC.&lt;br&gt;
4- On the Firefox app on your Android device, open the desired page URL that you are going to investigate.&lt;br&gt;
5- On the other side, click on the Android device name on the computer to establish the connection between computer and Android phone or tablet.&lt;br&gt;
6- In the &lt;strong&gt;&lt;em&gt;Tab list&lt;/em&gt;&lt;/strong&gt; on Windows Firefox, find the page that you have recently opened on your Android phone or tablet and click on the &lt;strong&gt;&lt;em&gt;Inspect&lt;/em&gt;&lt;/strong&gt; button to start debugging.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7gqg1cpol48bvuncqexz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7gqg1cpol48bvuncqexz.png" alt="Image description" width="800" height="277"&gt;&lt;/a&gt;&lt;br&gt;
7- In the opened Developer Tools window, you can now inspect the page from a mobile device aspect.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjnd9w172lh1m0xgyy4w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjnd9w172lh1m0xgyy4w.jpg" alt="Image description" width="800" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ℹ️ &lt;strong&gt;You may also be interested to read about:&lt;/strong&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-android-devices-with-windows-2630"&gt;Remote debugging using Google Chrome on Android devices with Windows&lt;/a&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-ios-devices-with-macos-ca9"&gt;Remote debugging using Google Chrome on iOS devices with macOS&lt;/a&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-safari-on-ios-devices-with-macos-16p5"&gt;Remote debugging using Safari on iOS devices with macOS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📝Resource: &lt;a href="https://www.oxyplug.com/optimization/ultimate-guide-to-remote-debugging-webpages/" rel="noopener noreferrer"&gt;https://www.oxyplug.com/optimization/ultimate-guide-to-remote-debugging-webpages/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>firefox</category>
      <category>android</category>
      <category>debug</category>
    </item>
    <item>
      <title>Remote debugging using Google Chrome on Android devices with Windows</title>
      <dc:creator>Nima Jafari</dc:creator>
      <pubDate>Mon, 04 Mar 2024 06:47:08 +0000</pubDate>
      <link>https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-android-devices-with-windows-2630</link>
      <guid>https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-android-devices-with-windows-2630</guid>
      <description>&lt;p&gt;Remote debugging is a method with which you can debug your website pages using a real mobile device on a debugging machine (PC or laptop), therefore you will be able to find mobile UI, UX, and technical issues. In the following, the remote debugging steps using Google Chrome browser and Android devices on Windows. Before you start, you need:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;An Android device&lt;/li&gt;
&lt;li&gt;A USB cable&lt;/li&gt;
&lt;li&gt;A PC or laptop as a debugging machine&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to do remote debugging using Android devices and Google Chrome on Windows?
&lt;/h2&gt;

&lt;p&gt;Before starting remote debugging on an Android device, first you need to enable Developer Options, then remote debugging feature on your Android device. To enable Developer Options on your phone or tablet:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Head over to the &lt;em&gt;&lt;strong&gt;Settings &amp;gt; About phone&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Find your phone’s &lt;strong&gt;&lt;em&gt;Build Number&lt;/em&gt;&lt;/strong&gt;. It can be in a different location based on your Android device model and brand.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Tap 7 times&lt;/strong&gt;&lt;/em&gt; on the &lt;strong&gt;&lt;em&gt;Build Number&lt;/em&gt;&lt;/strong&gt; until you see the message “You are now a developer!”.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppfpcxpgxu9n2hbkwcae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppfpcxpgxu9n2hbkwcae.png" alt="Image description" width="663" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Start remote debugging on your Android device using Google Chrome and debugging machine with Windows:&lt;/p&gt;

&lt;p&gt;1- On your Android device, in &lt;em&gt;&lt;strong&gt;Developer Options&lt;/strong&gt;&lt;/em&gt;, &lt;strong&gt;&lt;em&gt;Enable USB Debugging&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxc7cs60s1c416fj3007.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxc7cs60s1c416fj3007.png" alt="Image description" width="361" height="500"&gt;&lt;/a&gt;&lt;br&gt;
2- On your debugging device (laptop or PC), open &lt;strong&gt;&lt;em&gt;chrome://inspect#devices&lt;/em&gt;&lt;/strong&gt; on Google Chrome.&lt;br&gt;
3- Enable &lt;em&gt;&lt;strong&gt;Discover USB devices&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8nygh7pujh6rajilccn8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8nygh7pujh6rajilccn8.png" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
4- Connect your Android device to the PC or laptop with a &lt;em&gt;&lt;strong&gt;USB cable&lt;/strong&gt;&lt;/em&gt;. If it is the first time connection, you need to accept the prompt message that appears on your Android device to establish the connection between two devices successfully.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2gbkbfwpsmqq41mvkbky.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2gbkbfwpsmqq41mvkbky.png" alt="Image description" width="500" height="313"&gt;&lt;/a&gt;&lt;br&gt;
5- Open Chrome browser on the Android device and open the URL that you are going to debug. &lt;br&gt;
6- You can also enter a URL in the &lt;strong&gt;&lt;em&gt;Open tab with url&lt;/em&gt;&lt;/strong&gt; box on the Chrome (chrome://inspect#devices) on your laptop or PC.&lt;br&gt;
7- Click the &lt;strong&gt;&lt;em&gt;Inspect&lt;/em&gt;&lt;/strong&gt; on your debugging machine to start debugging.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiw7lf7gl3heku1tafbt4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiw7lf7gl3heku1tafbt4.png" alt="Image description" width="721" height="423"&gt;&lt;/a&gt;&lt;br&gt;
In the opened DevTools, you can now inspect pages from a mobile device view.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgc4s7s2luycpn4tp1gu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgc4s7s2luycpn4tp1gu.png" alt="Image description" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡In remote debugging, the version of Google Chrome on your Android device is important because the remote debugging is done based on its version. So, if you are using an old version of Chrome on your phone or tablet, you may see a different DevTools while debugging. It is highly recommended to use the latest version of Chrome browser on your Android device.&lt;/p&gt;

&lt;p&gt;ℹ️ You may also be interested to read:&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-firefox-on-android-devices-with-windows-2cf7"&gt;Remote debugging using Firefox on Android devices with Windows&lt;/a&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-google-chrome-on-ios-devices-with-macos-ca9"&gt;Remote debugging using Google Chrome on iOS devices with macOS&lt;/a&gt;&lt;br&gt;
🔗&lt;a href="https://dev.to/nimajafari/remote-debugging-using-safari-on-ios-devices-with-macos-16p5"&gt;Remote debugging using Safari on iOS devices with macOS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📝Resource: &lt;a href="https://www.oxyplug.com/optimization/ultimate-guide-to-remote-debugging-webpages/" rel="noopener noreferrer"&gt;https://www.oxyplug.com/optimization/ultimate-guide-to-remote-debugging-webpages/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>googlechrome</category>
      <category>android</category>
      <category>tutorial</category>
      <category>debug</category>
    </item>
    <item>
      <title>How can the contrast ratio have an impact on SEO?</title>
      <dc:creator>Nima Jafari</dc:creator>
      <pubDate>Mon, 29 Jan 2024 08:20:36 +0000</pubDate>
      <link>https://dev.to/nimajafari/how-can-the-contrast-ratio-have-an-impact-on-seo-38bi</link>
      <guid>https://dev.to/nimajafari/how-can-the-contrast-ratio-have-an-impact-on-seo-38bi</guid>
      <description>&lt;p&gt;&lt;strong&gt;Accessibility&lt;/strong&gt; is one of the important metrics that is measured strictly by almost all web page auditing tools such as Google Lighthouse. The accessibility report contains information like font size, font weight, contrast ratio, and everything else that can impact the readability of a text. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contrast ratio&lt;/strong&gt; is one of those accessibility metrics that focuses on the visibility of the text from the color contrast aspect. A web page elements’ colors should be visible enough to be seen and read for all the people with vision problems. In this article, the contrast ratio context is going to be discussed, and you will read about contrast ratio measurement methods.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the contrast ratio and how is it calculated?
&lt;/h2&gt;

&lt;p&gt;The “contrast ratio” is a metric that shows an element's color contrast with its background. The higher contrast ratio an element has, the more visible it becomes. As a deeper definition, the color contrast ratio is the ratio of the element’s color based on the &lt;strong&gt;background&lt;/strong&gt; or &lt;strong&gt;foreground luminance&lt;/strong&gt;. For instance, the white color has a luminance of &lt;strong&gt;100%&lt;/strong&gt; and the black color luminance is &lt;strong&gt;0%&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;contrast ratio = (L1 + 0.05) / (L2 + 0.05)
# L1 = Luminance 1 = Light color relative luminance level 
# L2 = Luminance 2 = dark color relative luminance level
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💡The contrast ratio can be a number between &lt;strong&gt;1&lt;/strong&gt; to &lt;strong&gt;21&lt;/strong&gt; that is shown as  1:1 or 1:21 (or 21:1 based on the background and foreground dark or light color).&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is the contrast ratio important?
&lt;/h2&gt;

&lt;p&gt;According to the statistics, 1 man in a 20-male population and 1 woman in a 200-female population are suffering from color blindness and vision problems. So, it is really important to provide suitable visibility and readability on web pages from a design perspective. As a result, contrast ratio as a critical accessibility metric should be of high priority in the web page UI/UX designing process. Google recommends following Web Content Accessibility Guidelines (&lt;a href="https://www.w3.org/TR/WCAG21/" rel="noopener noreferrer"&gt;WCAG&lt;/a&gt;) accessibility and contrast ratio standards.&lt;/p&gt;

&lt;h2&gt;
  
  
  AA/AAA contrast ratio standard
&lt;/h2&gt;

&lt;p&gt;Concerning the WCAG standard, the minimum passing contrast ratio is &lt;strong&gt;4.5&lt;/strong&gt; as AA, and the best contrast ratio is &lt;strong&gt;7&lt;/strong&gt; which is considered as AAA in the AA/AAA standard.&lt;/p&gt;

&lt;p&gt;💡The minimum contrast ratio should be at least 4.5:1 for individuals aged 80 or above, and people with color recognition problems. This contrast ratio for people with color blindness is at least 7.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcz76tjyiuj8x9p83wd07.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcz76tjyiuj8x9p83wd07.png" alt="Image description" width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Text type&lt;/th&gt;
&lt;th&gt;AA&lt;/th&gt;
&lt;th&gt;AAA&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Text &amp;lt; 24px&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text &amp;gt; 24px&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UI (icons, graphs, etc.)&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Contrast ratio measurement in Google Chrome based on AA/AAA standard
&lt;/h3&gt;

&lt;p&gt;Contrast ratio can be measured based on AA/AAA standard by using Google Chrome browser. To do so, you can follow the steps below:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Chrome DevTools&lt;/strong&gt; using &lt;strong&gt;Control+Shift+C&lt;/strong&gt; or &lt;strong&gt;F12&lt;/strong&gt; on Windows, Linux, and Chrome OS, or &lt;strong&gt;Command+Option+C&lt;/strong&gt; on macOS.&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Elements&lt;/strong&gt; tab, from the style section, select a color to open the color picker.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the browser can recognize the background, you will see the selected color contrast ratio in the &lt;strong&gt;color picker box&lt;/strong&gt;. If the contrast ratio is less than 4.5, which means failed, is shown with🚫sign, between 4.5 to 6.99 is considered as AA shown with one ✔, and 7=&amp;lt; is AAA and shown with ✔✔. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5q58ieotsjqmfor89170.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5q58ieotsjqmfor89170.png" alt="Image description" width="392" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡The two easiest ways for measuring contrast ratio based on the AA/AAA standard are using the Google Chrome DevTools color picker that is explained above, and &lt;a href="https://chromewebstore.google.com/detail/accessibility-insights-fo/pbjjkligggfmakdaogkfomddhfmpjeni?pli=1" rel="noopener noreferrer"&gt;Accessibility Insights for Web Chrome extension&lt;/a&gt;, or the &lt;a href="https://dev.to/alvaromontoro/building-your-own-color-contrast-checker-4j7o"&gt;contrast ratio checker tool created by Alvaro Montoro&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  APCA contrast ratio standard
&lt;/h2&gt;

&lt;p&gt;APCA stands for Accessible Perceptual Contrast Algorithm, which is another contrast ratio standard that considers font size, font weight, and text role on a page while calculating contrast ratio. The APCA standard is more accurate than AA/AAA. You can learn the details of APCA contrast ratio standard in the table below:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Text type&lt;/th&gt;
&lt;th&gt;100&lt;/th&gt;
&lt;th&gt;200&lt;/th&gt;
&lt;th&gt;300&lt;/th&gt;
&lt;th&gt;400&lt;/th&gt;
&lt;th&gt;500&lt;/th&gt;
&lt;th&gt;600&lt;/th&gt;
&lt;th&gt;700&lt;/th&gt;
&lt;th&gt;800&lt;/th&gt;
&lt;th&gt;900&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Font Size&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10px&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11px&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12px&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;x100&lt;/td&gt;
&lt;td&gt;x90&lt;/td&gt;
&lt;td&gt;x80&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14px&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;©§™&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;x60&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;16px&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;x50&lt;/td&gt;
&lt;td&gt;x50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;18px&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;x40&lt;/td&gt;
&lt;td&gt;x40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;24px&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;x35&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;30px&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;36px&lt;/td&gt;
&lt;td&gt;⊘&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;48px&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;60px&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;72px&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;96px&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;120px&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;td&gt;&amp;gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;⊘:&lt;/strong&gt; Text with those font-size and font-weight should not be on a page except decorative texts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;©§™:&lt;/strong&gt; There can only be texts with non-content usages like copyright. Otherwise, there should not be any texts with those font size and font weight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;x:&lt;/strong&gt; x-number like x100 indicates that font size or font-weight is not suitable to be used in the body of content on a page. It is recommended to use them for larger text elements such as headlines, titles, or large elements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&amp;lt;20:&lt;/strong&gt; It is recommended not to use the text with the mentioned font weight and font size.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contrast ratio measurement in Google Chrome based on APCA standard
&lt;/h3&gt;

&lt;p&gt;To measure contrast ratio based on the APCA standard, you need to first enable this option. You can enable this standard by following the steps provided here:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Chrome DevTools&lt;/strong&gt; using &lt;strong&gt;Control+Shift+C&lt;/strong&gt; or &lt;strong&gt;F12&lt;/strong&gt; on Windows, Linux, and Chrome OS, or &lt;strong&gt;Command+Option+C&lt;/strong&gt; on macOS.&lt;/li&gt;
&lt;li&gt;Click on the &lt;strong&gt;settings&lt;/strong&gt; icon ⚙️ on the top right side of the DevTools.&lt;/li&gt;
&lt;li&gt;From the left side, select the &lt;strong&gt;Experiments&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Select &lt;em&gt;&lt;strong&gt;Enable new Advanced Perceptual Contrast Algorithm (APCA)&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Reload DevTools for new changes to be applied.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After enabling the APCA in Chrome DevTools, head over to the &lt;strong&gt;Elements&lt;/strong&gt; tab and select a color from the style section. If the background of the element was known by the browser, then in the opened &lt;strong&gt;color picker&lt;/strong&gt;, you will see the contrast ratio, which is a number in percent, based on the APCA standard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcuj7nhco64b2e9pe4de7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcuj7nhco64b2e9pe4de7.png" alt="Image description" width="424" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Contrast ratio measuring tools
&lt;/h2&gt;

&lt;p&gt;There are different ways for measuring contrast ratio based on the AA/AAA standard or even APCA standard. Here are our suggestions as the contrast ratio measurement tools:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Google Chrome DevTools color picker (with APCA support)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/accessibility-insights-fo/pbjjkligggfmakdaogkfomddhfmpjeni?pli=1" rel="noopener noreferrer"&gt;Accessibility Insights for Web Chrome extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/alvaromontoro/building-your-own-color-contrast-checker-4j7o"&gt;contrast ratio checker tool created by Alvaro Montoro&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://figma.com/community/plugin/733159460536249875" rel="noopener noreferrer"&gt;A11y – Color Contrast Checker Figma plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.figma.com/community/plugin/748533339900865323" rel="noopener noreferrer"&gt;Contrast Figma plugin (with APCA beta support)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Checking the contrast ratio of a page with CSS Overview in Google Chrome
&lt;/h2&gt;

&lt;p&gt;CSS Overview is another feature with which the contrast ratio of a whole page will be measured. This feature is available on Google Chrome and can be enabled using the instructions below:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Chrome DevTools&lt;/strong&gt; using &lt;strong&gt;Control+Shift+C&lt;/strong&gt; or &lt;strong&gt;F12&lt;/strong&gt; on Windows, Linux, and Chrome OS, or Command+Option+C on macOS.&lt;/li&gt;
&lt;li&gt;In DevTools, open the &lt;strong&gt;command palette&lt;/strong&gt; by pressing &lt;strong&gt;Control+Shift+P&lt;/strong&gt; on Windows, Linux, and Chrome OS, or &lt;strong&gt;Command+Shift+P&lt;/strong&gt; on macOS.&lt;/li&gt;
&lt;li&gt;In the command palette, search “CSS”, then select &lt;em&gt;&lt;strong&gt;Show CSS Overview&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5gh9o07o93ccflk95r1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5gh9o07o93ccflk95r1i.png" alt="Image description" width="533" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;CSS Overview&lt;/strong&gt; tab, press the &lt;strong&gt;Capture overview&lt;/strong&gt; button to see the page’s contrast ratios. Whether you use AA/AAA or APCA contrast ratio standards, here are both reports:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faz7r5or69g3mw6tkfz1l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faz7r5or69g3mw6tkfz1l.png" alt="Contrast ratio report in CSS Overview based on AA/AAA standard&amp;lt;br&amp;gt;
" width="800" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowxqclpaw81zxoz6up7n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowxqclpaw81zxoz6up7n.png" alt="Contrast ratio report in CSS Overview based on APCA standard" width="800" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Automatic contrast ratio report in Google Chrome DevTools
&lt;/h2&gt;

&lt;p&gt;Another way to investigate the contrast ratio issues on a page is to use Google Chrome DevTools &lt;strong&gt;automatic contrast ratio report&lt;/strong&gt;. To enable this automatic report in the DevTools:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Chrome DevTools&lt;/strong&gt; using &lt;strong&gt;Control+Shift+C&lt;/strong&gt; or &lt;strong&gt;F12&lt;/strong&gt; on Windows, Linux, and Chrome OS, or &lt;strong&gt;Command+Option+C&lt;/strong&gt; on macOS.&lt;/li&gt;
&lt;li&gt;From the top right side, click on the ⚙️ icon.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Experiments&lt;/strong&gt; from the left side.&lt;/li&gt;
&lt;li&gt;Look for &lt;strong&gt;&lt;em&gt;Enable automatic contrast ratio reporting&lt;/em&gt;&lt;/strong&gt; and enable it.&lt;/li&gt;
&lt;li&gt;Reload DevTools.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrqan8ti7di8n4amdl8c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrqan8ti7di8n4amdl8c.png" alt="Image description" width="800" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By enabling this feature, if a page has contrast ratio issues, the number of the issues will appear on the top right side of the DevTools, then by clicking on it, the list of issues will be available. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbshh2oy70n3hdrg0mw3p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbshh2oy70n3hdrg0mw3p.png" alt="Image description" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Checking the contrast ratio of a page with Google Lighthouse
&lt;/h2&gt;

&lt;p&gt;Google Lighthouse is a free page auditing tool with which a page is audited from performance, accessibility, SEO, and PWA perspectives, and it will suggest some best practices to improve the page status. Contrast ratio issues are listed In the accessibility report of the Lighthouse as shown in the image below:&lt;br&gt;
To use the Lighthouse auditing tool, here are some methods you can try:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://pagespeed.web.dev/" rel="noopener noreferrer"&gt;PageSpeed Insights&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lighthouse in Google Chrome DevTools&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oxyplug.com/optimization/how-to-install-and-use-google-lighthouse-cli/" rel="noopener noreferrer"&gt;Lighthouse CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lighthouse Chrome extension&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gtmetrix.com/" rel="noopener noreferrer"&gt;GTmetrix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.webpagetest.org/" rel="noopener noreferrer"&gt;WebPageTest&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to emulate color blindness in Google Chrome?
&lt;/h2&gt;

&lt;p&gt;Color blindness is a health issue that about &lt;strong&gt;5%&lt;/strong&gt; of people around the world are suffering from. Some people have some color recognition problems like red, green, or blue, and others are not able to recognize any colors. Google Chrome has the color blindness emulation feature which helps websites find a better view about a specific vision issue. Therefore they can provide a better user experience. You can enable the &lt;strong&gt;Emulate vision deficiencies&lt;/strong&gt; following the steps below:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Chrome DevTools&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Open the &lt;strong&gt;command palette&lt;/strong&gt; window by using &lt;strong&gt;Control+Shift+P&lt;/strong&gt; on Windows, Linux, and Chrome OS, or &lt;strong&gt;Command+Shift+P&lt;/strong&gt; on macOS&lt;/li&gt;
&lt;li&gt;Search &lt;strong&gt;rendering&lt;/strong&gt; and add &lt;strong&gt;Show rendering&lt;/strong&gt; to the DevTools.&lt;/li&gt;
&lt;li&gt;From the opened list, find &lt;strong&gt;&lt;em&gt;Emulate vision deficiencies&lt;/em&gt;&lt;/strong&gt;, and select the suitable option from the dropdown.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyfepl9kmuyn84l5o8vdz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyfepl9kmuyn84l5o8vdz.png" alt="Image description" width="400" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sum up
&lt;/h2&gt;

&lt;p&gt;UI/UX designing is an important step in creating a website. During this process, every aspect of website accessibility from appearance aspect must be considered to provide the best view experience for all types of users. Contrast ratio is a critical part of the website accessibility and can be easily measured and respected using online tools and browsers like Google Chrome capabilities.&lt;/p&gt;

</description>
      <category>contrastratio</category>
      <category>lighthouse</category>
      <category>a11y</category>
      <category>seo</category>
    </item>
    <item>
      <title>How resource hints can help to improve website performance?</title>
      <dc:creator>Nima Jafari</dc:creator>
      <pubDate>Mon, 15 Jan 2024 12:32:21 +0000</pubDate>
      <link>https://dev.to/nimajafari/how-resource-hints-can-help-to-improve-website-performance-ekf</link>
      <guid>https://dev.to/nimajafari/how-resource-hints-can-help-to-improve-website-performance-ekf</guid>
      <description>&lt;p&gt;Website performance improvement is one of the main concerns for webmasters. There are numerous methods and tips with which a website performance can be improved. Resource hints are one of those technical solutions that can perform a significant role in case of web page performance optimization.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resource hints introduction
&lt;/h2&gt;

&lt;p&gt;Resource hints are used to notify the browsers how to behave with a page’s resources, so the page’s loading time will be decreased and the users will experience a better and faster web page visit experience. Resource hints are mostly used with the &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; rel attribute, but there are some other types of resource hints that are used differently.&lt;/p&gt;

&lt;p&gt;Resource hints can be used in the HTML as &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;, or they can be set as HTTP header.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ewdetj7ffipjd5nc14k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ewdetj7ffipjd5nc14k.png" alt="Resource hints usage percentage in HTTP header vs HTML markup&amp;lt;br&amp;gt;
" width="750" height="450"&gt;&lt;/a&gt;&lt;br&gt;
As shown above, it is more common to use resource hints in the HTML in preference to the HTTP header, because it is much easier to add or modify them in the HTML.&lt;/p&gt;
&lt;h2&gt;
  
  
  What are the types of resource hints?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;preconnect&lt;/code&gt;, &lt;code&gt;preload&lt;/code&gt;, &lt;code&gt;prefetch&lt;/code&gt;, and &lt;code&gt;dns-prefetch&lt;/code&gt; are four resource hint types that are used with the &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; rel attribute.&lt;br&gt;
There are also &lt;code&gt;Fetch Priority API&lt;/code&gt; and &lt;code&gt;speculation rules API&lt;/code&gt; which are considered resource hints as well.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. preconnect
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;preconnect&lt;/code&gt; resource hint is used to connect to crossorigin servers before the crossorigin resources are requested shortly. It is recommended to use the preconnect resource hint for the critical resources when there are many external resources to be loaded.&lt;/p&gt;

&lt;p&gt;As an example, if you use Google fonts on your website, it is better to preconnect the fonts and add &lt;code&gt;crossorigin&lt;/code&gt; attribute to the &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt;, because it tells the browser that the preconnected resources are fetched through Cross-Origin Resource Sharing &lt;strong&gt;(CORS)&lt;/strong&gt; mechanism, so the browser will use the same opened connection to access the fonts, otherwise, a new connection will be opened.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;link rel="preconnect" href="https://example.com"&amp;gt;
&amp;lt;link rel="preconnect" href="https://fonts.googleapis.com"&amp;gt;
&amp;lt;link rel="preconnect" href="https://fonts.gstatic.com" crossorigin&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💡To preconnect the Google fonts, you need to preconnect to the &lt;a href="https://fonts.googleapis.com" rel="noopener noreferrer"&gt;https://fonts.googleapis.com&lt;/a&gt; where the &lt;code&gt;@font-face&lt;/code&gt; is served, and to the &lt;a href="https://fonts.gstatic.com" rel="noopener noreferrer"&gt;https://fonts.gstatic.com&lt;/a&gt; where the font files are served.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. dns-prefetch
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;dns-prefetch&lt;/code&gt; is another resource hint which is used for crossorigin resources and is less costly than &lt;code&gt;preconnect&lt;/code&gt;. This resource hint &lt;strong&gt;only&lt;/strong&gt; does the DNS lookup on crossorigin servers. When there are many connections to crossorigin resources to be established, it is recommended not to overuse &lt;code&gt;preconnect&lt;/code&gt; feature, but to use &lt;code&gt;dns-prefetch&lt;/code&gt; resource hint instead.&lt;/p&gt;

&lt;p&gt;💡Some old browsers may not support &lt;code&gt;preconnect&lt;/code&gt;, you need to add &lt;code&gt;dns-prefetch&lt;/code&gt; in an extra  after &lt;code&gt;preconnect&lt;/code&gt; resource hint as a fallback.&lt;/p&gt;

&lt;p&gt;💡The &lt;code&gt;dns-prefetch&lt;/code&gt; must be loacated &lt;strong&gt;AFTER&lt;/strong&gt; the &lt;code&gt;&amp;lt;link rel="preconnect"&amp;gt;&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;link rel="dns-prefetch" href="https://example.com"&amp;gt;
&amp;lt;link rel="dns-prefetch" href="https://fonts.googleapis.com"&amp;gt;
&amp;lt;link rel="dns-prefetch" href="https://fonts.gstatic.com"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. preload
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;preload&lt;/code&gt; resource hint is used to download the critical resources that are needed for the initial page loading like the font files and the LCP element like featured image or image background in the CSS. By using &lt;code&gt;preload&lt;/code&gt;, the browser downloads the resources before the parser arrives at their line in DOM. The &lt;code&gt;preload&lt;/code&gt; can be used for both the website’s and crossorigin resources.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;link rel="preload" href="/lcp-image.jpg" as="image"&amp;gt;
&amp;lt;link rel="preload" href="/critical.css" as="style"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to use this resource hint for the external &lt;strong&gt;CORS&lt;/strong&gt; resources, you need to use the &lt;code&gt;crossorigin&lt;/code&gt; attribute to avoid downloading resources twice which causes more bandwidth usage. There is the opposite story for the non-CORS resources as well. You should &lt;strong&gt;NOT&lt;/strong&gt; use &lt;code&gt;crossorigin&lt;/code&gt; for those non-CORS resources to avoid downloading files for the second time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;link rel="preload" href="/font.woff2" as="font" type="font/woff2 crossorigin&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As shown above, the “as” attribute should be used for crossorigin resources which is another important attribute that prevents the browsers from downloading resources more than one time. &lt;/p&gt;

&lt;p&gt;In the same example, the &lt;code&gt;as="font" type="font/woff2&lt;/code&gt; tells the browser to download this resource as a font, so the browser will consider the resource type while prioritizing the resource downloading queue.&lt;/p&gt;

&lt;p&gt;💡Fonts are considered as CORS resources, so it is mandatory to use the &lt;code&gt;crossorigin&lt;/code&gt; attribute for fonts, even if they are self-hosted.&lt;/p&gt;

&lt;p&gt;💡Avoid excessive use of &lt;code&gt;preload&lt;/code&gt; resource hint as it downloads the resources with a high priority and overusing it can cause higher bandwidth usage and has negative effects on some Core Web Vitals (CWV) metrics’ scores and every rendering process-related parameter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.oxyplug.com/products/oxy-preload/" rel="noopener noreferrer"&gt;Oxyplug Preload WordPress plugin&lt;/a&gt; can help WordPress websites in preloading featured images without any need to make changes to the websites’ codes.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. prefetch
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;prefetch&lt;/code&gt; is another practical resource hint with which the browser can request the next-navigation resources with low priority. This resource hint can help to reduce loading time for next pages and is helpful in many cases. For example, if there is a specific user behavior pattern on your website, you can decide which resources be prefetched to boost loading speed, but in general, this feature can be costly too due to fetching resources that may not be utilized in the near future.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;link rel="prefetch" href="/next-page.html"&amp;gt;
&amp;lt;link rel="prefetch" href="/next-page.css" as="style"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💡It is possible to inject &lt;code&gt;&amp;lt;link rel=”prefetch”&amp;gt;&lt;/code&gt; in a page dynamically.&lt;/p&gt;

&lt;p&gt;💡Google recommends using the &lt;code&gt;speculation rules API&lt;/code&gt; for prefetching instead of &lt;code&gt;&amp;lt;link rel=”prefetch”&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;💡The &lt;code&gt;rel=”prefetch”&lt;/code&gt; caches the resources in the HTML cache, while by using &lt;code&gt;speculation rules API&lt;/code&gt;, the resources will be processed and kept in the memory and are available when they are requested.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.oxyplug.com/products/oxy-prefetch/" rel="noopener noreferrer"&gt;Oxy Prefetch and Prerender&lt;/a&gt; is a light WordPress plugin with which prerendering and prefetching pages can be easily done without making changes to the website’s codes manually.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Fetch Priority API
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;Fetch Priority API&lt;/code&gt; is another resource hint with which the priority of the resources on a page can be increased, so they can be loaded sooner. In modern browsers, page loading is done in two phases, first, the resources that are critical resources for initial page loading are loaded, and in the second phase, the rest of resources with a lower priority are fetched. By changing the priority of resources using &lt;code&gt;fetchpriority=”high”&lt;/code&gt;, the resources with the &lt;strong&gt;high&lt;/strong&gt; value will be fetched sooner during the mentioned first phase.&lt;/p&gt;

&lt;p&gt;One of the effective usages of Fetch Priority API is for LCP images. By using &lt;code&gt;fetchpriority=”high”&lt;/code&gt;, the LCP image can be fetched with a high priority and it can directly impact the LCP score.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="gallery"&amp;gt;
  &amp;lt;div class="lcp"&amp;gt;
    &amp;lt;img src="img/lcp-element.jpg" fetchpriority="high"&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class="thumbnails"&amp;gt;
    &amp;lt;img src="img/thumbnail-2.jpg" fetchpriority="low"&amp;gt;
    &amp;lt;img src="img/thumbnail-3.jpg" fetchpriority="low"&amp;gt;
    &amp;lt;img src="img/thumbnail-4.jpg" fetchpriority="low"&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💡The &lt;code&gt;fetchpriority&lt;/code&gt; attribute can be used in &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;

&lt;p&gt;💡Before, the images on a page were loaded with a low priority, but after the Chrome 117 update, the first five images that are in the viewport, have the &lt;code&gt;medium&lt;/code&gt; priority and the first two images are loaded immediately after the initial page loading. By changing the &lt;code&gt;fetchpriority&lt;/code&gt; of the important images to high, they can be loaded sooner.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Speculation rules API
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;speculation rules API&lt;/code&gt; is a method that is used to prefetch or prerender next-navigations. Earlier prerendering was done using &lt;code&gt;rel=”prerender”&lt;/code&gt; attribute, but after getting deprecated, the prerendering process is done through &lt;code&gt;speculation rules API&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;💡The &lt;code&gt;&amp;lt;link rel=”prefetch”&amp;gt;&lt;/code&gt; is only supported on the &lt;strong&gt;Chromium-based browsers&lt;/strong&gt;. For other browsers, you need to use &lt;code&gt;speculation rules API&lt;/code&gt; to prefetch resources.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script type="speculationrules"&amp;gt;
{
  "prefetch": [
    {
      "source": "list",
      "urls": ["next.html", "next2.html"]
    }
  ]
}
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script type="speculationrules"&amp;gt;
{
  "prerender": [
    {
      "source": "list",
      "urls": ["next.html", "next2.html"]
    }
  ]
}
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Which browsers do support resource hints?
&lt;/h2&gt;

&lt;p&gt;The resource hints are almost supported in almost all modern browsers. You can find general information about resource hints browser support in the table below:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resource hint&lt;/th&gt;
&lt;th&gt;Chrome&lt;/th&gt;
&lt;th&gt;Edge&lt;/th&gt;
&lt;th&gt;FireFox&lt;/th&gt;
&lt;th&gt;Opera&lt;/th&gt;
&lt;th&gt;Safari&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;preconnect&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;dns-prefetch&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;⚠️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;preload&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;prefetch&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fetch Priority API&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speculation rules API&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;⚠️&lt;strong&gt;FireFox&lt;/strong&gt; only supports &lt;code&gt;dns-prefetch&lt;/code&gt; on HTTP origins, but it does not support &lt;code&gt;dns-prefetch&lt;/code&gt; on HTTPS origins.&lt;/p&gt;

&lt;p&gt;ℹ️ The table above was prepared based on the information provided here: &lt;a href="https://caniuse.com/?search=resource%20hints" rel="noopener noreferrer"&gt;https://caniuse.com/?search=resource%20hints&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;To sum up, by using resource hints, the page loading speed can be improved significantly, and it can result in better page performance and user experience. However, the way the resource hints are used is important as well, because overusing them can cause high bandwidth consumption and may have a negative impact on the loading speed.&lt;/p&gt;

</description>
      <category>preload</category>
      <category>prefetch</category>
      <category>resourcehint</category>
      <category>prerender</category>
    </item>
  </channel>
</rss>
