Page titles are wrapped in a span tag On a site we are working on I was asked why the page titles are wrapped with a span tag. We are not using a base theme.
I checked everywhere I could think of, but came up short.
In page-title.html.twig:
{#
/**
 * @file
 * Theme override for page titles.
 *
 * Available variables:
 * - title_attributes: HTML attributes for the page title element.
 * - title_prefix: Additional output populated by modules, intended to be
 *   displayed in front of the main title tag that appears in the template.
 * - title: The page title, for use in the actual content.
 * - title_suffix: Additional output populated by modules, intended to be
 *   displayed after the main title tag that appears in the template.
 */
#}
{{ title_prefix }}
{% if title %}
  &lt;h1{{ title_attributes }}&gt;{{ title }}&lt;/h1&gt;
{% endif %}
{{ title_suffix }}

At this point, title is a render array. It is passed in as a Markup object. Where is this happening?
The span doesn't hurt anything, but at this point I just want to find where that is occurring. Is there an option to switch that off? I can preprocess_page_title and strip tag it, but unless there is a good reason, I would rather not have it at all.
This is probably not the case for all pages? I think what you see is the rendered result of an entity field like for example this node field template:
field--node--title.html.twig:
&lt;span{{ attributes }}&gt;
  {%- for item in items -%}
    {{ item.content }}
  {%- endfor -%}
&lt;/span&gt;

In other cases when the title is not bubbled up from the rendered main content and it is taken from the route definition there shouldn't be a span tag unless there is a title callback placing such a tag.