skip to Main Content

TL;DR

How/why are some browsers able to search and highlight text in the HTML body which is followed by #:~:text= in the URL?


Explanation

One day I was searching for something on Google, which lead me to Quora’s result. I observed that 2 sentences were highlighted in yellow, which were part of URL after the aforementioned parameter. I thought this would be Quora’s feature for SEO or something, however, also found this on Linkedin, and Medium, and so on.


I’d like to know:

  1. What is this highlighting called? Why/how does it work?
  2. This seems to be browser-specific. What kind of browsers support this?
    It seems to work on Chrome and Edge; but not on Firefox, Safari, and IE.
  3. Does a frontend programmer need to incorporate something in the code to have search engines highlight content on their web-pages? (Based on the assumption that search engines actually appends the relevant string predicted by user’s query)

2

Answers


    1. The highlighting is called Text Fragments. Its a new feature that was recently added to Chrome 80. It works by specifying a text snippet in the URL hash.

    2. Yes it is browser specific.

    3. No, the experience that you get when clicking on a link from Google’s search results is part of Featured Snippets which are algorithmically determined. There is nothing you can incorporate into your code to prompt search engines to highlight text on your page.

    There is no markup needed by webmasters. This happens automatically,
    using Scroll To Text for HTML pages
    https://chromestatus.com/feature/4733392803332096. See also more
    background here: https://support.google.com/webmasters/answer/6229325

    Sources:

    Login or Signup to reply.
  1. While text fragments is natively implemented only in latest Google Chrome (and the latest versions of Chromium-based browsers, such as the new Microsoft Edge), there is a browser extension/add-on that seems to enable it on Firefox and Safari: https://github.com/GoogleChromeLabs/link-to-text-fragment

    It appears to use #ref-for-fragment-directive:~:text= and additional arguments (instead of just simple #:~:text=).

    Curiously enough, the extension has also been made available for Chrome and Edge too (!).

    .

    UPDATE: I’m testing it on Firefox Developer Edition, and it doesn’t work for me.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search