The page <title> is one of the easiest elements to forget — especially on a launch page generated from a template or vibe-coded scaffold that still ships <title>Vite App</title> or no title at all. Yet the title is the first thing a screen reader announces when a page loads, the label browsers put on a tab, and the line search engines and stores read to identify your page. A missing or empty title is a quiet accessibility gap that reviewers, auditors, and assistive-technology users all notice fast.
This page explains the page-title signal LaunchTrust looks for, how it maps to WCAG and the European Accessibility Act, and how to close the gap before you submit.
What LaunchTrust checks
The a11y_title detector fetches your public page and inspects the served HTML for a non-empty <title> element. Concretely, it:
- Searches the fetched HTML for a
<title>...</title>element. - Reads the text between the opening and closing tags and trims surrounding whitespace.
- If that trimmed text is non-empty, the signal is detected (informational severity) and the report echoes the first part of the title it found.
- If there is no
<title>, or the title is empty or whitespace-only, the signal is not detected (medium severity) and references WCAG 2.4.2 (Page Titled).
This is a positive signal: a detection is the thing you want present. The detector reports only what it can see in the fetched HTML — it does not judge whether your title is well-worded, unique across routes, or descriptive enough.
- Detected means a
<title>with real, non-whitespace text was found in the fetched HTML. It confirms a title exists; it does not assert the title is good. - Not detected means the served HTML had no
<title>, or the title was empty or whitespace-only. If your title is injected only by client-side JavaScript (common with single-page apps), a plain fetch may not see it — confirm manually before concluding it is missing. - Unable to determine can occur when the page could not be fetched or read (blocked, timed out). That is a fetch outcome, not a statement about your markup.
One implementation detail worth knowing: the detector reads only the plain text between the tags and looks at a bounded slice of it, so it expects a title that is short, properly closed with </title>, and free of embedded markup — which is how a good title should be written anyway.
Why it matters
A descriptive page title is a baseline accessibility expectation. Under the Web Content Accessibility Guidelines, success criterion 2.4.2 (Page Titled) asks that web pages have titles describing their topic or purpose. Screen-reader users rely on the title to know where they have landed; people juggling many tabs rely on it to find the right one.
WCAG is the technical reference behind a growing set of obligations. The European Accessibility Act sets accessibility requirements for many digital products and services offered to consumers in the EU, and conformance is commonly demonstrated against WCAG-aligned standards. A missing page title is one of the most basic — and most easily flagged — shortfalls against those criteria. The exact scope and timelines that apply to your product depend on your situation, so treat this as commonly expected practice rather than a fixed legal conclusion.
LaunchTrust maps this detector to the EAA and WCAG. Surfacing an empty or absent title early is far cheaper than discovering it in an audit, a store review, or a user complaint.
A concrete example
An empty title element triggers not detected — it parses, but says nothing:
<title></title>
A real, descriptive title in the served HTML triggers detected:
<title>Acme Invoicing — Simple invoices for freelancers</title>
Both are valid HTML. Only the second gives a screen-reader user, a tabbed browser, and a store reviewer something meaningful to read. The detector confirms a non-empty title exists; you make sure it actually describes the page.
How to address it
- Add a real
<title>to every page. Place it inside<head>and write text that describes the page's topic or purpose — notHome,App, or a framework default. - Make titles unique per route. Give each page a distinct title (for example,
Pricing — AcmeandSign in — Acme) so users can tell tabs apart. - Front-load the meaningful words. Put the page-specific topic first and the brand name after a separator, so the start stays informative even when a tab truncates it.
- Fix client-rendered titles. If your single-page app sets the title only after JavaScript runs, ship a sensible default
<title>in the initial HTML and update it on navigation. - Keep it plain text and properly closed. Avoid embedded markup, and make sure the
</title>tag is actually present. - Re-scan after deploying. Confirm the title renders in the served HTML — not only in your editor — and re-run the check.
If you are working toward formal accessibility conformance, treat a non-empty title as a starting point and verify the full set of relevant criteria with a qualified source.
Check this in 30 seconds
Run your URL through the free LaunchTrust scanner. It fetches your public page and tells you whether a non-empty <title> is detected or not detected — alongside related signals like your page language attribute, image alt text, and form input labels — so you can close gaps before you submit, not after an audit.
FAQ
Does a detected page title meet accessibility requirements for my app? No. LaunchTrust surfaces signals, not a verdict. A detection means a non-empty <title> was found in the fetched HTML — it does not certify the title is descriptive enough, that the rest of the page meets WCAG, or that you satisfy any specific law. It is a compliance aid, not legal advice or certification.
My title is set by JavaScript — why does the scan say not detected? The detector reads the HTML it fetches. If your title is injected only after client-side JavaScript runs, a plain fetch may not see it. Ship a sensible default <title> in the initial HTML, then re-scan.
Is having any title enough for WCAG 2.4.2? The detector confirms a non-empty title exists; WCAG 2.4.2 also expects the title to describe the page. A title like Home is present but not descriptive. Treat a detection as "a title exists," not "the title is good."
How is the page title different from the page language attribute? They are separate signals. The title (WCAG 2.4.2) describes what the page is about; the <html lang> attribute (WCAG 3.1.1) tells assistive technology which language to read it in. LaunchTrust checks both.
Compliance aid, not legal advice. LaunchTrust reports signals, not a verdict or certification.