C01 inline style display:none

Expect: flagged
Before after.

C02 display:none from a stylesheet rule

Expect: flagged
Before [C02] Stylesheet display none text. after.

C03 hidden attribute

Expect: flagged
Before after.

C04 hidden="until-found" (find-in-page can show it)

Expect: flagged (by the attribute)

C05 visibility:hidden (keeps its space)

Expect: flagged
Before [C05] Visibility hidden text. after.

C22 display:none on an ancestor

Expect: flagged (the ancestor)

[C22] Nested text under a hidden ancestor.

C26 SVG <text visibility="hidden">

Expect: flagged
[C26] SVG hidden text.

C27 visibility:hidden sizer (sets the box width)

Expect: flagged. Removal shrinks the box. A mask can change its width.
[C27] The longest label sets the width.Short

C30 hidden element added after load

Expect: flagged on the next pass

C19 closed <details>

Expect: not flagged (details is excluded, and computed style is visible)
Summary is visible

[C19] Closed details body text.

C25 <dialog> that is not open

Expect: not flagged (dialog is excluded)
[C25] Dialog text that starts closed.

C29 popover

Expect: not flagged ([popover] is excluded)
[C29] Popover text that starts closed.

C31 display:none that contains a link

Expect: not flagged (contains a[href])
[C31] Hidden text with a link inside.

C34 <template> (never rendered)

Expect: not flagged (template is skipped). The button stamps a copy.

C06 visibility:collapse (table row)

Expect: not flagged
Row 1 is visible
[C06] Collapsed row text.

C07 opacity:0

Expect: not flagged (opacity is excluded on purpose)
Before [C07] Opacity zero text. after.

C08 color:transparent

Expect: not flagged
Before [C08] Transparent colour text. after.

C09 text colour equals the background

Expect: not flagged
Before [C09] White on white text. after.

C10 font-size:0

Expect: not flagged
Before [C10] Zero font size text. after.

C11 height:0; overflow:hidden

Expect: not flagged
[C11] Zero height text.

C12 collapsed accordion (max-height:0, animates open)

Expect: not flagged
[C12] Accordion body text.

C13 clip: rect(0 0 0 0)

Expect: not flagged
Before [C13] Clipped text. after.

C14 clip-path: inset(50%)

Expect: not flagged
Before [C14] Clip path text. after.

C15 off-screen (left:-9999px)

Expect: not flagged
Before [C15] Off screen text. after.

C16 transform: scale(0)

Expect: not flagged
Before [C16] Scaled to zero text. after.

C17 text-indent:-9999px

Expect: not flagged
[C17] Indented out text.

C18 content-visibility:hidden

Expect: not flagged
[C18] Content visibility hidden text.

C20 filter: opacity(0)

Expect: not flagged
Before [C20] Filter opacity text. after.

C21 covered by an opaque overlay

Expect: not flagged
[C21] Text under an overlay.

C23 :hover menu (move the pointer over the box, or use the button)

Expect: flagged (display:none until hover). Shows with no DOM change.
Hover here

C24 fade-in animation (opacity 0 to 1 after 4 s)

Expect: not flagged. The button replays the animation.
Before [C24] Fade in text. after.

C32 screen-reader text (.sr-only, and the same CSS as .offscreen-x)

Expect: not flagged (computed style is visible; .sr-only is also excluded)
Before [C32a] Screen reader text.[C32b] Same CSS, other class. after.

C35 display:none in a closed shadow root

Expect: not flagged (the sweep does not enter shadow roots)

C36 display:none in a same-origin iframe

Expect: not flagged (the sweep does not enter frames)

C28 [hidden] with an author override to display:block

Expect: flagged, but the text is visible

C33 aria-hidden="true" (visible on screen)

Expect: flagged, but the text is visible

C37 visibility:hidden parent with a visibility:visible child

Expect: flagged (the parent), and the visible child is masked too

No visibility check (tier 1 in the extension)

C00 <meta name=description>, HTML comment, <noscript>

Expect: not reported by findHiddenText(). The extension masks these in a separate pass.
(no visible content)