pydata / pydata-sphinx-theme

A clean, three-column Sphinx theme with Bootstrap for the PyData community
https://pydata-sphinx-theme.readthedocs.io
BSD 3-Clause "New" or "Revised" License
565 stars 304 forks source link

Search: Missing match highlights in search results #1676

Closed michael-wisely-gravwell closed 6 months ago

michael-wisely-gravwell commented 6 months ago

The Problem

I recently migrated a project from pydata-sphinx-theme 0.11.0 to 0.15.2.

On 0.11.0, I was used to seeing the little match context with each page link featuring highlights on matches.

image

On 0.15.2, however, I don't see the match contexts at all, but I do see lot of errors logged by searchtools.js.

image

It would appear that searchtools.js is looking for an element with the selector [role="main"], and it's not finding it.

A Workaround

Adding this to my layout.html appears to fix the issue for me:

{% block docs_body %}
  {% include "components/searchbox.html" %}
  <article class="bd-article" role="main">
    {% block body %}{% endblock %}
  </article>
{% endblock docs_body %}

That said, I'm not totally certain if docs_body is the right place to put role="main". I decided to try adding it there because that's where it's located in v0.11.0

drammock commented 6 months ago

the role="main" was removed in #1454 for screen reader compatibility. @gabalafou can you look?

gabalafou commented 6 months ago

Thanks @michael-wisely-gravwell for submitting such a thorough issue (sorry for the turbulence!) and thanks @drammock for linking #1454. I've submitted a fix, #1678.