embed-text-alternative-quality

<embed> text alternative must be appropriate (manual review)

manualWCAG 1.1.1 (A)confidence: mediumseverity: minorperceivable

Flags <embed> elements with a detected name for human review of appropriateness.

Applies to. Applies to <embed> elements that already carry a text alternative: a non-empty aria-label, an aria-labelledby that resolves to non-empty text, or a non-empty title. An aria-labelledby pointing at a missing id resolves to nothing and so is not a text alternative to review; that element is embed-text-alternative-present's failure. The element must be included in the accessibility tree, and role="presentation"/"none" takes it out of scope unless it is focusable, which restores its role.

Expectation. Human review is required to confirm that the provided text alternative is accurate and appropriate.

What a finding reports.

  • reasonCode: TEXT_ALTERNATIVE_REVIEW.
  • ariaLabel, title: the element's aria-label and title, or null when it has none.
  • ariaLabelledBy: the ids in the element's aria-labelledby, or null when it has none.
  • ariaLabelledByText: the text those ids point at, or null. Only looked up when the element has no aria-label, since aria-label then gives the name.

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
<embed src="report.pdf" type="application/pdf" title="Quarterly report PDF">

A title is present — worth confirming it identifies the document well enough for someone who can't see the embedded viewer.

n/a
<embed src="report.pdf" type="application/pdf">

No aria-label, resolved aria-labelledby, or title exists to review; that's embed-text-alternative-present's failure instead.

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.

TEXT_ALTERNATIVE_REVIEW

  1. Look at what the embedded content the report names shows or does.
  2. Read its text alternative (aria-label, aria-labelledby text or title, as the report gives it).
  3. Check that the text says what the embedded content is or describes it.

Pass. The text alternative identifies or describes the embedded content accurately.

Fail. The text alternative is generic, wrong or does not describe the embedded content, which fails WCAG 1.1.1.

View source