page-title-patterns

Page title patterns that may be insufficiently descriptive

manualWCAG 2.4.2 (A)confidence: mediumseverity: minoroperable

Identifies page title patterns that may indicate low descriptiveness, such as generic, duplicated, or overly templated titles. This rule provides review signals and does not fail automatically.

Applies to. Applies to a run over a whole document whose <title> resolves to non-empty text, and that is a page of its own: a document shown in a frame is not applicable, as its frame is named by its <iframe>. The title element is the first HTML <title> anywhere in the document, as for document.title, so one the parser left in <body> counts; a missing or empty title is page-title-present's failure, not a pattern to review. A run narrowed by contextSelector or by engineOptions.fragment is notApplicable.

Expectation. The title carries none of the conservative low-descriptiveness signals: one of the generic titles home, homepage, welcome, untitled, page or document; fewer than eight characters; or a template shape pairing a generic token with a brand, such as "Home | Brand". When the crawl.pageTitles probe supplies at least ten pages, cross-page signals are used instead: one title repeated across distinct URLs, or a prefix or suffix of twelve characters or more shared across the set. Every signal is reported as cantTell: whether a title describes its page is a judgment, so the rule never fails on a pattern alone. A title with none of the signals is asked about too (titleReview): its presence, which page-title-present checks, says nothing of whether it describes the page, so the 2.4.2 rollup claims no more than that.

What a finding reports.

  • titleText (a single-page signal: genericTitle, veryShortTitle, templateLikeTitle, or titleReview for a title with none): the page title, with spacing collapsed.
  • metrics.pagesAnalyzed (a cross-page signal): how many pages with a URL and a title were compared.
  • metrics.duplicateGroups (a cross-page signal): how many titles are used by two or more URLs, compared without regard to case.
  • metrics.largestDuplicateGroupSize (a cross-page signal): how many URLs share the most-repeated title. 0 when no title repeats.
  • metrics.sharedPrefix, metrics.sharedSuffix (a cross-page signal): the start or end of the title that every page shares, when it is 12 characters or more. Empty otherwise.
  • refs.exampleDuplicateTitles (a cross-page signal): up to three repeated titles. One item is the title and up to five of the urls that use it.

These data.details fields help to read and reproduce a finding. Apart from reasonCode and the few fields Output schema names as stable, they are not a stable contract: a field may be renamed or dropped in a minor release, so don’t build on them.

Examples

can't tell
<title>Home</title>

"Home" is one of the conservative generic-title signals this rule reviews.

can't tell
<title>Quarterly Sales Report — Q3 2026</title>

The title matches none of the low-descriptiveness patterns, but whether it describes the page is still for a person to check (titleReview): a title's presence is all that page-title-present claims.

How to check

When this rule can’t decide, it reports cantTell and leaves the question to a person. Each question it can ask is listed here under its reason code, with the steps to answer it. A finding carries the same steps as howToCheck, in the scan’s language. See Output schema.

genericTitle

  1. Read the page title the report gives; the browser shows it in the tab.
  2. Look at the page's main heading and content and note what the page is about.
  3. Decide whether the title says that, and tells this page apart from the site's other pages.

Pass. The title says what the page is about, even though it is a common word.

Fail. The title is a generic word that does not say what the page is about, which fails WCAG 2.4.2 (F25).

veryShortTitle

  1. Read the page title the report gives; the browser shows it in the tab.
  2. Look at the page's main heading and content and note what the page is about.
  3. Decide whether so short a title says what the page is about.

Pass. The short title says what the page is about, for example the name of the product or place the page covers.

Fail. The title is too short to say what the page is about, which fails WCAG 2.4.2.

templateLikeTitle

  1. Read the page title the report gives; the browser shows it in the tab.
  2. Look at the page's main heading and content and note what the page is about.
  3. Decide whether the title, besides the site's name, says what the page is about.

Pass. The page is the site's home page, which the title names, or the title says what the page is about.

Fail. The title only pairs the site's name with a generic word and does not say what the page is about, which fails WCAG 2.4.2 (F25).

duplicateTitlesAcrossPages

  1. Note a repeated title and the URLs the report lists for it.
  2. Open two or more of those URLs and note what each page is about.
  3. Decide whether the shared title says what each of them is about.

Pass. The pages sharing the title are the same content at different URLs, or the title fits each of them.

Fail. Different pages share one title, so it does not say what each is about or tell them apart, which fails WCAG 2.4.2 (F25).

templatedTitlesAcrossPages

  1. Note the start or end the report says every title shares.
  2. Open several of the scanned pages and read each one's title in the browser tab.
  3. Decide whether the part of each title that is not shared says what that page is about.

Pass. Each title has a part of its own that says what its page is about.

Fail. Beyond the shared part, the titles say little or nothing of what each page is about, which fails WCAG 2.4.2.

titleReview

  1. Read the page title the report gives; the browser shows it in the tab.
  2. Look at the page's main heading and content and note what the page is about.
  3. Decide whether the title says that topic or purpose.

Pass. The title says what the page is about or what it is for.

Fail. The title does not say what the page is about or what it is for, which fails WCAG 2.4.2.

View source