# Sa11y ACT Conformance Report

Generated: 2026-04-24 · Sa11y v5.0.4

22
Rules Tested
0
Fully Consistent
4/362
Test Cases Consistent
1%
Overall Rate
How to read this report: For each ACT rule, every test case has an expected outcome: `passed` (no issue), `failed` (tool should flag), or `inapplicable` (rule doesn't apply). Consistent means ed11y's behavior matched the expectation. Inconsistent means ed11y either missed a real issue (false negative) or flagged a non-issue (false positive). Click "HTML source" to see the test markup.

### 0% Text has enhanced contrast (09o5cg)

WCAG 1.4.6 · Coverage: todo · 0/35 consistent
Same concern as afw4f7 — different contrast algorithm.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #333; background: #FFF;">
    		Some text in a human language
    	</p>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #333; background: linear-gradient(to right, #FFF, #BBF); width: 500px;">
    		Some text in a human language
    	</p>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <style>
    		p {
    			color: #fff;
    			height: 50px;
    			padding-top: 15px;
    			background: #000 no-repeat -20px -20px url('/WAI/content-assets/wcag-act-rules/test-assets/contrast/black-hole.jpeg');
    			text-shadow: 0px 0px 2px black;
    		}
    	</style>
    	<p>Black hole sun</p>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #000; font-size:18pt; background: #777;">
    		Some text in a human language
    	</p>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #000; font-size:14pt; font-weight:700; background: #777;">
    		Some text in English
    	</p>
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #000; background: #666;">
    		----=====++++++++___________***********%%%%%%%%%%%±±±±@@@@@@@@
    	</p>
INCONSISTENT | Passed Example 7 | `passed` | `(none)` | no results | W3C
HTML source
    <p>Some text in a human language</p>
INCONSISTENT | Passed Example 8 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #CCC; background: #fff;" id="p"></p>
    	<script>
    		const shadowRoot = document.getElementById('p').attachShadow({ mode: 'open' })
    		shadowRoot.innerHTML = '<span style="color: #333;">Some text in English</span>'
    	</script>
INCONSISTENT | Passed Example 9 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="https://w3c.org/">W3C</a>
INCONSISTENT | Passed Example 10 | `passed` | `(none)` | no results | W3C
HTML source
    <div role="button">My button!</div>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #666; background: white;">
    		Some text in English
    	</p>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #666; background: linear-gradient(to right, #FFF, #0FF); width: 300px">
    		Some text in English
    	</p>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #000; font-size:18pt; background: #666;">
    		Some text in a human language
    	</p>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #AAA; background: white;">
    		Some text in English
    	</p>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #000; font-size:14pt; font-weight:700; background: #666;">
    		Some text in English
    	</p>
INCONSISTENT | Failed Example 6 | `failed` | `(none)` | no results | W3C
HTML source
    <p
    		style="color: #777; height:50px; padding-top:20px; background: black no-repeat -20px -20px url('/WAI/content-assets/wcag-act-rules/test-assets/contrast/black-hole.jpeg');"
    	>
    		Black hole sun
    	</p>
INCONSISTENT | Failed Example 7 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: rgba(0,0,0,.6); background: #FFF">
    		Some text in English
    	</p>
INCONSISTENT | Failed Example 8 | `failed` | `(none)` | no results | W3C
HTML source
    <div style="background: #FFF">
    		<p style="color: #000; opacity: .6">
    			Some text in English
    		</p>
    	</div>
INCONSISTENT | Failed Example 9 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #666; background: #fff;" id="p"></p>
    	<script>
    		const shadowRoot = document.getElementById('p').attachShadow({ mode: 'open' })
    		shadowRoot.textContent = 'Some text in English'
    	</script>
INCONSISTENT | Failed Example 10 | `failed` | `(none)` | no results | W3C
HTML source
    <style>
    		#backgroundSplit {
    			color: rgba(90, 90, 90, 0.9);
    			background-position: top 0 left 0;
    			background-image: linear-gradient(90deg, transparent, transparent 3.3em, black 3.3em, black 6em);
    			padding: 0 1em;
    		}
    	</style>
    	<span id="backgroundSplit">
    		Hello world
    	</span>
INCONSISTENT | Failed Example 11 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #333; background: #FFF;">
    		Helvetica is a widely used sans-serif typeface developed in 1957 by Max Miedinger and Eduard Hoffmann.
    	</p>
    	<p style="font-family: helvetica; background: #EEE; color: #555;">
    		The quick brown fox jumps over the lazy dog.
    	</p>
INCONSISTENT | Failed Example 12 | `failed` | `(none)` | no results | W3C
HTML source
    <button style="color: #555; background: #EEE;">My button!</button>
INCONSISTENT | Failed Example 13 | `failed` | `(none)` | no results | W3C
HTML source
    <div role="button" style="color: #555; background: #EEE;">My button!</div>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p style="display: none">Some invisible text in English</p>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p style="position:absolute; top: -999em">Some invisible text in English</p>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p style="color: white; background: white;" aria-hidden="true">Hidden text - U U D D L R L R B A S</p>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <svg>
    		<text x="0" y="15">I love SVG!</text>
    	</svg>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>
    		<img scr="/WAI/content-assets/wcag-act-rules/test-assets/contrast/example.png" alt="example" />
    	</p>
INCONSISTENT | Inapplicable Example 6 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <label style="color:#888; background: white;">
    		My name
    		<input type="text" disabled />
    	</label>
INCONSISTENT | Inapplicable Example 7 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <label id="my_pets_name" style="color:#888; background: white;">
    		My pet's name
    	</label>
    	<div
    		role="textbox"
    		aria-labelledby="my_pets_name"
    		aria-disabled="true"
    		style="height:20px; width:100px; border:1px solid black;"
    	>
    		test
    	</div>
INCONSISTENT | Inapplicable Example 8 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <fieldset disabled style="color:#888; background: white;">
    		<label>
    			My name
    			<input />
    		</label>
    	</fieldset>
INCONSISTENT | Inapplicable Example 9 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div role="group" aria-disabled="true" style="color:#888; background: white;">
    		<label>
    			My name
    			<input />
    		</label>
    	</div>
INCONSISTENT | Inapplicable Example 10 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <button style="color: #777; background: #EEE;" disabled>My button!</button>
INCONSISTENT | Inapplicable Example 11 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div role="button" style="color: #777; background: #EEE;" aria-disabled="true">My button!</div>
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <button style="color: #666; background-color: #FFF" aria-label="Close">X</button>

### 0% Image has non-empty accessible name (23a2a8)

WCAG 1.1.1 · Coverage: partial · 0/18 consistent
ACT rule also covers div[role="img"] and other implicit img roles. Ed11y focuses on <img> and linked images.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <img alt="W3C logo" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" />
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <div
    		role="img"
    		aria-label="W3C logo"
    		style="width:72px; height:48px; background-image: url(/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png)"
    	></div>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <div style="display: none" id="img-label">W3C logo</div>
    	<div
    		role="img"
    		aria-labelledby="img-label"
    		style="width:72px; height:48px; background-image: url(/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png)"
    	></div>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <img title="W3C logo" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" />
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <img alt="" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/background.png" />
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <img role="presentation" style="width:72px; height:48px; background-image: url(/WAI/content-assets/wcag-act-rules/test-assets/shared/background.png)" />
INCONSISTENT | Passed Example 7 | `passed` | `(none)` | no results | W3C
HTML source
    <img role="none" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/background.png" />
INCONSISTENT | Passed Example 8 | `passed` | `(none)` | no results | W3C
HTML source
    <div style="margin-left:-9999px;">
    		<img alt="" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/background.png" />
    	</div>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" />
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <div role="img" style="width:72px; height:48px; background-image: url(/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png)"></div>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <div style="margin-left:-9999px;"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" /></div>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" alt=" " />
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <img role="none" tabindex="0" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" />
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
    		<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
    	</svg>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div
    		role="img"
    		aria-hidden="true"
    		style="width:72px; height:48px; background-image: url(/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png)"
    	></div>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" aria-hidden="true" />
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div style="display: none">
    		<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" />
    	</div>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div style="visibility: hidden">
    		<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" />
    	</div>

### 8% HTML page has non-empty title (2779a5)

WCAG 2.4.2 · Coverage: full · 1/13 consistent
Requires developer plugin enabled.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html>
    	<title>This page has a title</title>
    </html>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html>
    	<title>This page gives a title to an iframe</title>
    	<iframe src="/WAI/content-assets/wcag-act-rules/test-assets/sc2-4-2-title-page-without-title.html"></iframe>
    </html>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <title>Title of the page.</title>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <title>Title of the page.</title>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <title></title>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html>
    	<h1>this page has no title</h1>
    </html>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html>
    	<title></title>
    </html>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html>
    	<iframe src="/WAI/content-assets/wcag-act-rules/test-assets/sc2-4-2-title-page-with-title.html"></iframe>
    </html>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <title>Title of the page.</title>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html>
    	<title> </title>
    </html>
Consistent | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <iframe src="/WAI/content-assets/wcag-act-rules/test-assets/sc2-4-2-title-page-without-title.html"></iframe>
INCONSISTENT | Failed Example 6 | `failed` | `(none)` | no results | W3C
HTML source
    <template id="shadow-element">
    			<title>This is the page title</title>
    		</template>
    		<script>
    			const host = document.querySelector('body')
    			const shadow = host.attachShadow({ mode: 'open' })
    			const template = document.getElementById('shadow-element')

    			shadow.appendChild(template.content)
    		</script>

### 0% Image button has non-empty accessible name (59796f)

WCAG 1.1.1, WCAG 4.1.2 · Coverage: partial · 0/12 consistent
Requires form labels plugin enabled.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <input type="image" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/search-icon.svg" alt="Search" />
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <input type="image" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/search-icon.svg" aria-label="Search" />
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <input type="image" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/search-icon.svg" title="Search" />
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <input type="image" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/search-icon.svg" aria-labelledby="id1" />
    	<div id="id1">Search</div>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <input type="image" name="search" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/search-icon.svg" />
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <input type="image" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/search-icon.svg" alt="" />
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <input type="image" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/search-icon.svg" aria-labelledby="non-existing" />
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <button>My button</button>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <input type="button" value="My button" />
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <button><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/search-icon.svg" alt="Search" /></button>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" alt="W3C logo" />
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <input type="image" src="/WAI/content-assets/wcag-act-rules/test-assets/shared/search-icon.svg" style="display: none;" />

### 0% Link in context is descriptive (5effbb)

WCAG 2.4.4, WCAG 2.4.9 · Coverage: partial · 0/18 consistent
Ed11y catches links with only non-descriptive stopwords (e.g., "click here"). The ACT rule evaluates whether the link is descriptive in context, which is broader.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="#desc">See the description of this product.</a>

    	<p id="desc">This product consists of several web pages.</p>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="#main"><img src="/WAI/content-assets/wcag-act-rules/test-assets/5effbb/main.png" alt="Go to the main content"/></a>

    	<main>
    		<p id="main">This is the main content.</p>
    	</main>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <p>See the description of <a href="#desc">this product</a>.</p>

    	<p id="desc">This product consists of several web pages.</p>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <span role="link" tabindex="0" onclick="document.location+='#desc'">See description of the product.</span>

    	<p id="desc">This product consists of several web pages.</p>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <ul>
    		<li>
    			Ulysses
    			<ul>
    				<li><a href="https://www.gutenberg.org/files/4300/4300-h/4300-h.htm"> HTML </a></li>
    				<li>
    					<a href="https://www.gutenberg.org/ebooks/4300.epub.images?session_id=04cd710372888de8d8d322215cdfe8ce5b0f8d73">
    						EPUB
    					</a>
    				</li>
    				<li><a href="https://www.gutenberg.org/files/4300/4300-0.txt"> Plain text </a></li>
    			</ul>
    		</li>
    	</ul>
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<th colspan="3">Ulysses</th>
    		</tr>
    		<tr>
    			<td><a href="https://www.gutenberg.org/files/4300/4300-h/4300-h.htm">HTML</a></td>
    			<td>
    				<a href="https://www.gutenberg.org/ebooks/4300.epub.images?session_id=04cd710372888de8d8d322215cdfe8ce5b0f8d73"
    					>EPUB</a
    				>
    			</td>
    			<td><a href="https://www.gutenberg.org/files/4300/4300-0.txt">Plain text</a></td>
    		</tr>
    	</table>
INCONSISTENT | Passed Example 7 | `passed` | `(none)` | no results | W3C
HTML source
    <p id="instructions">Go to the main content.</p>
    	<svg xmlns="http://www.w3.org/2000/svg" x="0" y="0">
    		<a href="#main" aria-labelledby="instructions">
    			<path
    				style="fill:#1E201D;"
    				d="M21.205,5.007c-0.429-0.444-1.143-0.444-1.587,0c-0.429,0.429-0.429,1.143,0,1.571l8.047,8.047H1.111
    				C0.492,14.626,0,15.118,0,15.737c0,0.619,0.492,1.127,1.111,1.127h26.554l-8.047,8.032c-0.429,0.444-0.429,1.159,0,1.587
    				c0.444,0.444,1.159,0.444,1.587,0l9.952-9.952c0.444-0.429,0.444-1.143,0-1.571L21.205,5.007z"
    			/>
    		</a>
    	</svg>

    	<main>
    		<p id="main">This is the main content.</p>
    	</main>
INCONSISTENT | Passed Example 8 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<td>
    				Download Ulysses in
    				<a href="https://www.gutenberg.org/files/4300/4300-h/4300-h.htm">HTML</a>
    			</td>
    			<td>
    				Download Ulysses in
    				<a href="https://www.gutenberg.org/ebooks/4300.epub.images?session_id=04cd710372888de8d8d322215cdfe8ce5b0f8d73"
    					>EPUB</a
    				>
    			</td>
    		</tr>
    	</table>
INCONSISTENT | Passed Example 9 | `passed` | `(none)` | no results | W3C
HTML source
    <h2 id="rule">Button has accessible name</h2>
    	<ul>
    		<li>
    			<a href="https://www.w3.org/WAI/standards-guidelines/act/rules/97a4e1/#applicability" aria-describedby="rule"
    				>Applicability</a
    			>
    		</li>
    		<li>
    			<a href="https://www.w3.org/WAI/standards-guidelines/act/rules/97a4e1/#expectation" aria-describedby="rule"
    				>Expectation</a
    			>
    		</li>
    	</ul>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="#desc">More</a>

    	<p id="desc">This product consists of several web pages.</p>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <div role="link" tabindex="0" onclick="document.location+='#main'">More</div>

    	<main>
    		<p id="main">This is the main content.</p>
    	</main>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <svg xmlns="http://www.w3.org/2000/svg" x="0" y="0">
    		<a href="#main">
    			<text x="20" y="20">
    				Go
    			</text>
    		</a>
    	</svg>

    	<main>
    		<p id="main">This is the main content.</p>
    	</main>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <p>
    		The W3C held a workshop on June 9-10, 2005 at DERI Innsbruck (Austria), to gather information about potential
    		standardization work on Semantics in Web Services.
    	</p>

    	<p><a href="https://www.w3.org/2005/04/FSWS/workshop-report.html">Workshop</a></p>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="font-weight: bold">Ulysses</p>
    	<ul>
    		<li><a href="https://www.gutenberg.org/files/4300/4300-h/4300-h.htm"> HTML </a></li>
    		<li>
    			<a href="https://www.gutenberg.org/ebooks/4300.epub.images?session_id=04cd710372888de8d8d322215cdfe8ce5b0f8d73">
    				EPUB
    			</a>
    		</li>
    		<li><a href="https://www.gutenberg.org/files/4300/4300-0.txt"> Plain text </a></li>
    	</ul>
INCONSISTENT | Failed Example 6 | `failed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<th colspan="3">Books</th>
    		</tr>
    		<tr>
    			<td>Ulysses</td>
    			<td><a href="https://www.gutenberg.org/files/4300/4300-h/4300-h.htm">Download</a></td>
    			<td>1.61MB</td>
    		</tr>
    	</table>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI" role="button">Web Accessibility Initiative (WAI)</a>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI" style="display: none;"
    		><img src="/WAI/content-assets/wcag-act-rules/test-assets/5effbb/cart.svg" alt="Checkout" />Checkout</a
    	>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <a>placeholder</a>

### 0% Element with aria-hidden has no content in sequential focus order (6cfa84)

WCAG 4.1.2 · Coverage: partial · 0/15 consistent
Ed11y checks for aria-hidden focusable elements in images, links, buttons, and embeds. May not catch all element types the ACT rule covers.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <p aria-hidden="true">Some text</p>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <div aria-hidden="true">
    		<a href="/" style="display:none">Link</a>
    	</div>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <input disabled aria-hidden="true" />
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <div
    		id="sampleModal"
    		role="dialog"
    		aria-label="Sample Modal"
    		aria-modal="true"
    		style="border: solid black 1px; padding: 1rem;"
    	>
    		<label>First and last name <input id="dialogFirst"/></label><br />
    		<button id="closeButton">Close button</button>
    	</div>
    	<div aria-hidden="true">
    		<a href="#" id="sentinelAfter" style="position:absolute; top:-999em"
    			>Upon receiving focus, this focus sentinel should wrap focus to the top of the modal</a
    		>
    	</div>
    	<script>
    		document.getElementById('sentinelAfter').addEventListener('focus', () => {
    			document.getElementById('dialogFirst').focus()
    		})
    		document.getElementById('closeButton').addEventListener('click', () => {
    			document.getElementById('sampleModal').style.display = 'none'
    		})
    	</script>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <div aria-hidden="true">
    		<button tabindex="-1">Some button</button>
    	</div>
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="#">
    		<svg width="16" height="16" aria-hidden="true">
    			<circle cx="8" cy="11" r="4" stroke="black" stroke-width="2" fill="transparent" />
    		</svg>
    		Hello ACT
    	</a>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <div aria-hidden="true">
    		<a href="/" style="position:absolute; top:-999em">Link</a>
    	</div>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <div aria-hidden="true">
    		<input aria-disabled="true" />
    	</div>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <div aria-hidden="true">
    		<div aria-hidden="false">
    			<button>Some button</button>
    		</div>
    	</div>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <p tabindex="0" aria-hidden="true">Some text</p>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <details aria-hidden="true">
    		<summary>Some button</summary>
    		<p>Some details</p>
    	</details>
INCONSISTENT | Failed Example 6 | `failed` | `(none)` | no results | W3C
HTML source
    <div
    		id="sampleModal"
    		role="dialog"
    		aria-label="Sample Modal"
    		aria-modal="true"
    		style="border: solid black 1px; padding: 1rem;"
    	>
    		<label>First and last name <input id="dialogFirst"/></label><br />
    		<button id="closeButton">Close button</button>
    	</div>
    	<div aria-hidden="true">
    		<a href="#" id="sentinelAfter" style="position:absolute; top:-999em"
    			>Upon receiving focus, this focus sentinel should wrap focus to the top of the modal</a
    		>
    	</div>
    	<script>
    		document.getElementById('closeButton').addEventListener('click', () => {
    			document.getElementById('sampleModal').style.display = 'none'
    		})
    	</script>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <button tabindex="-1" aria-hidden>Some button</button>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p aria-hidden="false">Some text</p>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div aria-hidden="yes">
    		<p>Some text</p>
    	</div>

### 0% SVG element with explicit role has non-empty accessible name (7d6734)

WCAG 1.1.1 · Coverage: todo · 0/10 consistent
Ed11y queries svg[role="img"] in its image checks. May not cover all SVG role combinations.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <p>How many circles are there?</p>
    	<svg xmlns="http://www.w3.org/2000/svg" role="img" width="100" height="100">
    		<title>1 circle</title>
    		<circle cx="50" cy="50" r="40" fill="yellow"></circle>
    	</svg>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <p>How many circles are there?</p>
    	<svg xmlns="https://www.w3.org/2000/svg">
    		<circle
    			role="graphics-symbol"
    			cx="50"
    			cy="50"
    			r="40"
    			stroke="green"
    			stroke-width="4"
    			fill="yellow"
    			aria-label="1 circle"
    		></circle>
    	</svg>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <p>How many circles are there?</p>
    	<svg xmlns="http://www.w3.org/2000/svg" role="graphics-document" width="100" height="100">
    		<title>1 circle</title>
    		<circle cx="50" cy="50" r="40" fill="yellow"></circle>
    	</svg>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <p>How many circles are there?</p>
    	<svg xmlns="http://www.w3.org/2000/svg" role="img">
    		<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow"></circle>
    	</svg>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <p>How many circles are there?</p>
    	<svg xmlns="http://www.w3.org/2000/svg" role="img">
    		<title></title>
    		<circle cx="50" cy="50" r="40" fill="yellow"></circle>
    	</svg>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <p>How many circles are there?</p>
    	<svg xmlns="http://www.w3.org/2000/svg">
    		<circle role="graphics-symbol" cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow"></circle>
    	</svg>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <p>How many circles are there?</p>
    	<svg xmlns="http://www.w3.org/2000/svg" role="img" width="100" height="100">
    		<circle cx="50" cy="50" r="40" fill="yellow"></circle>
    		<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle">
    			1 circle
    		</text>
    	</svg>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <svg xmlns="http://www.w3.org/2000/svg">
    		<circle cx="50" cy="50" r="40" fill="yellow"></circle>
    	</svg>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true">
    		<circle cx="50" cy="50" r="40" fill="yellow"></circle>
    	</svg>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <svg xmlns="http://www.w3.org/2000/svg">
    		<circle role="graphics-object" cx="50" cy="50" r="40" fill="yellow"></circle>
    	</svg>

### 0% Button has non-empty accessible name (97a4e1)

WCAG 4.1.2 · Coverage: full · 0/17 consistent
Requires developer plugin enabled.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <button>My button</button>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <input type="submit" value="Submit" />
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <button aria-label="My button"></button>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <span role="button" aria-label="My button"></span>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <button disabled>Delete</button>
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <button class="notInPage">Save</button>
INCONSISTENT | Passed Example 7 | `passed` | `(none)` | no results | W3C
HTML source
    <input type="reset" />
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <button></button>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <button type="button" value="read more"></button>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <span role="button"></span>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <button class="notInPage" value="delete"></button>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <button role="none"></button>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <input type="image" value="download" alt="Download" />
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <button style="display: none;"></button>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <button role="link">take me somewhere</button>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div>Press Here</div>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <button role="none" disabled></button>

### 0% Headers attribute specified on a cell refers to cells in the same table element (a25f45)

WCAG 1.3.1 · Coverage: todo · 0/19 consistent
Ed11y checks for the presence of <th> elements in a table. The ACT rule validates that headers attributes point to valid cells. Discovery showed 2/4 failed detected with 2 false positives.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<thead>
    			<tr>
    				<th id="header1">Projects</th>
    				<th id="header2">Objective</th>
    			</tr>
    		</thead>
    		<tbody>
    			<tr>
    				<td headers="header1">15%</td>
    				<td headers="header2">10%</td>
    			</tr>
    		</tbody>
    	</table>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<thead>
    			<tr>
    				<th id="header1">Projects</th>
    				<th id="header2">Exams</th>
    			</tr>
    		</thead>
    		<tbody>
    			<tr>
    				<td colspan="2" headers="header1 header2">15%</td>
    			</tr>
    		</tbody>
    	</table>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<thead>
    			<tr>
    				<td role="columnheader" id="header1">Projects</td>
    				<td role="columnheader" id="header2">Objective</td>
    			</tr>
    		</thead>
    		<tbody>
    			<tr>
    				<td headers="header1">15%</td>
    				<td headers="header2">10%</td>
    			</tr>
    		</tbody>
    	</table>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<th colspan="2" id="header1">Projects</th>
    			<th colspan="2" id="header2">Exams</th>
    		</tr>
    		<tr>
    			<th id="e1" headers="header1">1</th>
    			<th id="e2" headers="header1">2</th>
    			<th id="p1" headers="header2">1</th>
    			<th id="p2" headers="header2">2</th>
    		</tr>
    		<tr>
    			<td colspan="2" headers="header1 e1 e2">15%</td>
    			<td headers="header2 p1">15%</td>
    			<td headers="header2 p2">45%</td>
    		</tr>
    	</table>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tbody>
    			<tr>
    				<th role="rowheader" id="headerAge">Age</th>
    				<td headers="headerAge">65</td>
    			</tr>
    			<tr>
    				<th role="rowheader" id="headerObjective">Objective</th>
    				<td headers="headerObjective">40%</td>
    			</tr>
    		</tbody>
    	</table>
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<th id="name" colspan="2">Name</th>
    		</tr>
    		<tr>
    			<th headers="name">Firstname</th>
    			<th headers="name">Lastname</th>
    		</tr>
    	</table>
INCONSISTENT | Passed Example 7 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<th id="projects1" scope="row">Projects</th>
    			<th id="progress1" scope="row">Progress</th>
    		</tr>
    		<tr>
    			<td headers="projects1">My Project</td>
    			<td headers="progress1">15%</td>
    		</tr>
    	</table>
INCONSISTENT | Passed Example 8 | `passed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<td></td>
    			<th id="projects2">Projects</th>
    		</tr>
    		<tr>
    			<td headers="projects2">15%</td>
    			<td></td>
    		</tr>
    	</table>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<th id="headerOfColumn1">Projects</th>
    			<th id="headerOfColumn2">Objective</th>
    		</tr>
    		<tr>
    			<td headers="headOfColumn1">15%</td>
    			<td headers="headOfColumn2">10%</td>
    		</tr>
    	</table>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<th id="headOfColumn1">Projects</th>
    			<th id="headOfColumn2">Objective</th>
    		</tr>
    	</table>

    	<table>
    		<tr>
    			<td headers="headOfColumn1">15%</td>
    			<td headers="headOfColumn2">10%</td>
    		</tr>
    	</table>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<th>Event Type</th>
    		</tr>
    		<tr>
    			<td id="headerBday" headers="headerBday">
    				Birthday
    			</td>
    		</tr>
    	</table>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<td>
    				<span id="headerProject">Projects</span>
    			</td>
    			<td>
    				<span id="headerObjective">Objective</span>
    			</td>
    		</tr>
    		<tr>
    			<td headers="headerProject">
    				15%
    			</td>
    			<td headers="headerObjective">
    				10%
    			</td>
    		</tr>
    	</table>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <table>
    		<tr>
    			<th scope="col">Projects</th>
    			<th scope="col">Exams</th>
    		</tr>
    		<tr>
    			<td>15%</td>
    			<td>45%</td>
    		</tr>
    	</table>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <table role="presentation">
    		<tr>
    			<td id="header1">Project Status</td>
    			<td id="header2">Objective</td>
    		</tr>
    		<tr>
    			<td headers="header1">15%</td>
    			<td headers="header2">10%</td>
    		</tr>
    	</table>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html>
    	<style>
    		.notInPage {
    			position: absolute;
    			left: -9999px;
    			top: -9999px;
    		}
    	</style>
    	<table class="notInPage">
    		<tr>
    			<th id="header1">Project Status</th>
    			<th id="header2">Objective</th>
    		</tr>
    		<tr>
    			<td headers="header1">15%</td>
    			<td headers="header2">10%</td>
    		</tr>
    	</table>
    </html>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div role="table">
    		<div role="row">
    			<div role="columnheader" id="header1">Projects</div>
    			<div role="columnheader" id="header2">Exams</div>
    		</div>
    		<div role="row">
    			<div role="cell" headers="header2">15%</div>
    			<div role="cell" headers="header1">15%</div>
    		</div>
    	</div>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <table style="display:none;">
    		<tr>
    			<td id="header1">Project Status</td>
    			<td id="header2">Objective</td>
    		</tr>
    		<tr>
    			<td headers="header1">15%</td>
    			<td headers="header2">10%</td>
    		</tr>
    	</table>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div role="table" aria-label="Grades">
    		<div role="row">
    			<div role="columnheader" id="header1">Projects</div>
    			<div role="columnheader" id="header2">Exams</div>
    		</div>
    		<div role="row">
    			<div role="cell" headers="header2">15%</div>
    			<div role="cell" headers="header1">15%</div>
    		</div>
    	</div>
INCONSISTENT | Inapplicable Example 6 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <table role="heading" aria-level="1">
    		<td id="self" headers="self">World</td>
    	</table>

### 0% Text has minimum contrast (afw4f7)

WCAG 1.4.3, WCAG 1.4.6 · Coverage: todo · 0/34 consistent
Ed11y uses APCA contrast algorithm; ACT rule uses WCAG 2.x luminance contrast ratio. Results may not align.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #333; background: #FFF;">
    		Some text in a human language
    	</p>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #333; background: linear-gradient(to right, #FFF, #00F); width: 500px;">
    		Some text in a human language
    	</p>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <style>
    		p {
    			color: #ccc;
    			height: 50px;
    			padding-top: 15px;
    			background: #000 no-repeat -20px -20px url('/WAI/content-assets/wcag-act-rules/test-assets/contrast/black-hole.jpeg');
    			text-shadow: 0px 0px 2px black;
    		}
    	</style>
    	<p>Black hole sun</p>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #000; background: #737373; text-shadow: white 0 0 3px">
    		Some text in a human language
    	</p>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #000; font-size:18pt; background: #666;">
    		Some text in a human language
    	</p>
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #000; font-size:14pt; font-weight:700; background: #666;">
    		Some text in English
    	</p>
INCONSISTENT | Passed Example 7 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #000; background: #666;">
    		----=====++++++++___________***********%%%%%%%%%%%±±±±@@@@@@@@
    	</p>
INCONSISTENT | Passed Example 8 | `passed` | `(none)` | no results | W3C
HTML source
    <p>Some text in a human language</p>
INCONSISTENT | Passed Example 9 | `passed` | `(none)` | no results | W3C
HTML source
    <p style="color: #CCC; background: #fff;" id="p"></p>
    	<script>
    		const shadowRoot = document.getElementById('p').attachShadow({ mode: 'open' })
    		shadowRoot.innerHTML = '<span style="color: #333;">Some text in English</span>'
    	</script>
INCONSISTENT | Passed Example 10 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="https://w3c.org/">W3C</a>
INCONSISTENT | Passed Example 11 | `passed` | `(none)` | no results | W3C
HTML source
    <div role="button">My button!</div>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #AAA; background: white;">
    		Some text in English
    	</p>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #AAA; background: linear-gradient(to right, #FFF, #00F); width: 300px">
    		Some text in English
    	</p>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <p
    		style="color: #555; height:50px; padding-top:20px; background: black no-repeat -20px -20px url('/WAI/content-assets/wcag-act-rules/test-assets/contrast/black-hole.jpeg');"
    	>
    		Black hole sun
    	</p>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: rgba(0,0,0,.3); background: #FFF">
    		Some text in English
    	</p>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <div style="background: #FFF">
    		<p style="color: #000; opacity: .3">
    			Some text in English
    		</p>
    	</div>
INCONSISTENT | Failed Example 6 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #aaa; background: #fff;" id="p"></p>
    	<script>
    		const shadowRoot = document.getElementById('p').attachShadow({ mode: 'open' })
    		shadowRoot.textContent = 'Some text in English'
    	</script>
INCONSISTENT | Failed Example 7 | `failed` | `(none)` | no results | W3C
HTML source
    <style>
    		#backgroundSplit {
    			color: rgba(90, 90, 90, 0.8);
    			background-position: top 0 left 0;
    			background-image: linear-gradient(90deg, transparent, transparent 3.3em, black 3.3em, black 6em);
    			padding: 0 1em;
    		}
    	</style>
    	<span id="backgroundSplit">
    		Hello world
    	</span>
INCONSISTENT | Failed Example 8 | `failed` | `(none)` | no results | W3C
HTML source
    <p style="color: #333; background: #FFF;">
    		Helvetica is a widely used sans-serif typeface developed in 1957 by Max Miedinger and Eduard Hoffmann.
    	</p>
    	<p style="font-family: helvetica; background: #EEE; color: #777;">
    		The quick brown fox jumps over the lazy dog.
    	</p>
INCONSISTENT | Failed Example 9 | `failed` | `(none)` | no results | W3C
HTML source
    <button style="color: #777; background: #EEE;">My button!</button>
INCONSISTENT | Failed Example 10 | `failed` | `(none)` | no results | W3C
HTML source
    <div role="button" style="color: #777; background: #EEE;">My button!</div>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p style="display: none">Some invisible text in English</p>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p style="position:absolute; top: -999em">Some invisible text in English</p>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p style="color: white; background: white;" aria-hidden="true">Hidden text - U U D D L R L R B A S</p>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <svg>
    		<text x="0" y="15">I love SVG!</text>
    	</svg>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>
    		<img src="/WAI/content-assets/wcag-act-rules/test-assets/contrast/example.png" alt="example" />
    	</p>
INCONSISTENT | Inapplicable Example 6 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <label style="color:#888; background: white;">
    		My name
    		<input type="text" disabled />
    	</label>
INCONSISTENT | Inapplicable Example 7 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <label id="my_pets_name" style="color:#888; background: white;">
    		My pet's name
    	</label>
    	<div
    		role="textbox"
    		aria-labelledby="my_pets_name"
    		aria-disabled="true"
    		style="height:20px; width:100px; border:1px solid black;"
    	>
    		test
    	</div>
INCONSISTENT | Inapplicable Example 8 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <fieldset disabled style="color:#888; background: white;">
    		<label>
    			My name
    			<input />
    		</label>
    	</fieldset>
INCONSISTENT | Inapplicable Example 9 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div role="group" aria-disabled="true" style="color:#888; background: white;">
    		<label>
    			My name
    			<input />
    		</label>
    	</div>
INCONSISTENT | Inapplicable Example 10 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <button style="color: #777; background: #EEE;" disabled>My button!</button>
INCONSISTENT | Inapplicable Example 11 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div role="button" style="color: #777; background: #EEE;" aria-disabled="true">My button!</div>
INCONSISTENT | Passed Example 7 | `passed` | `(none)` | no results | W3C
HTML source
    <button style="color: #666; background-color: #000" aria-label="Close">X</button>
INCONSISTENT | Failed Example 11 | `failed` | `(none)` | no results | W3C
HTML source
    <p
    		style="background: #fff; color: #666; text-shadow: #aaa 2px 2px 4px, #aaa -2px 2px 4px, #aaa 2px -2px 4px, #aaa -2px -2px 4px;"
    	>
    		Some text in a human language
    	</p>

### 0% Iframe with interactive elements is not excluded from tab-order (akn7bn)

WCAG 2.1.1, WCAG 2.1.3 · Coverage: partial · 0/10 consistent
Ed11y flags iframes with tabindex="-1" regardless of interactive content. The ACT rule specifically requires the iframe to contain interactive elements. Discovery showed high false positive rate on inapplicable cases.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <iframe srcdoc="<a href='/'>Home</a>"></iframe>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <iframe tabindex="0" srcdoc="<a href='/'>Home</a>"></iframe>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <iframe tabindex="-1" srcdoc="<a href='/'>Home</a>"></iframe>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe tabindex="-1" srcdoc="<h1>Hello world</h1>"></iframe>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe tabindex="-1" hidden srcdoc="<a href='/'>Home</a>"></iframe>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe tabindex="-1" width="1" height="1" srcdoc="<a href='/'>Home</a>"></iframe>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe tabindex="-1" srcdoc="<a href='/' tabindex='-1'>Home</a>"></iframe>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe tabindex="-1" inert srcdoc="<a href='/'>Home</a>"></iframe>
INCONSISTENT | Inapplicable Example 6 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe id="myFrame" title="Links" srcdoc="<a href='/'>Home</a>"></iframe>
    	<div>
    		<button id="ppButton" onclick="openDialog()">Privacy policy details</button>
    	</div>
    	<dialog id="ppDialog" aria-labelledby="dialogLabel">
    		<h2 id="dialogLabel">Privacy Policy</h2>
    		<p>We store no data.</p>
    		<button id="cancel" onclick="ppDialog.close()">Cancel</button>
    	</dialog>
    	<script>
    		const openDialog = () => {
    			ppDialog.showModal();
    			myFrame.tabIndex = '-1'
    		}
    		ppDialog.addEventListener('close', () => myFrame.tabIndex = 0)
    		window.addEventListener('DOMContentLoaded', openDialog);
    	</script>
INCONSISTENT | Inapplicable Example 6 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe id="myFrame" title="Links" srcdoc="<a href='/'>Home</a>"></iframe>
    	<div>
    		<button id="ppButton" onclick="openDialog()">Privacy policy details</button>
    	</div>
    	<dialog id="ppDialog" aria-labelledby="dialogLabel">
    		<h2 id="dialogLabel">Privacy Policy</h2>
    		<p>We store no data.</p>
    		<button id="cancel" onclick="ppDialog.close()">Cancel</button>
    	</dialog>
    	<script>
    		const openDialog = () => {
    			ppDialog.showModal()
    			myFrame.tabIndex = '-1'
    		}
    		ppDialog.addEventListener('close', () => (myFrame.tabIndex = 0))
    		window.addEventListener('DOMContentLoaded', openDialog)
    	</script>

### 0% Meta viewport allows for zoom (b4f0c3)

WCAG 1.4.4, WCAG 1.4.10 · Coverage: full · 0/16 consistent
Requires developer plugin enabled.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>
INCONSISTENT | Failed Example 7 | `failed` | `(none)` | no results | W3C
HTML source
    <p>
    			Lorem ipsum
    		</p>

### 29% HTML page has lang attribute (b5c3f8)

WCAG 3.1.1 · Coverage: full · 2/7 consistent
Requires developer plugin enabled.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    The quick brown fox jumps over the lazy dog.
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    The quick brown fox jumps over the lazy dog.
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    The quick brown fox jumps over the lazy dog.
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    The quick brown fox jumps over the lazy dog.
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    The quick brown fox jumps over the lazy dog.
Consistent | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
Consistent | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C

### 0% Meta element has no refresh delay (bc659a)

WCAG 2.2.1, WCAG 2.2.4, WCAG 3.2.5 · Coverage: full · 0/15 consistent
Requires developer plugin enabled.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="0; URL='https://github.com'" />
    </head>
    </html>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="0; https://w3.org" />
    	<meta http-equiv="refresh" content="5; https://w3.org" />
    </head>
    </html>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="72001; https://w3.org" />
    </head>
    </html>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <p>This page refreshes after 30 seconds.</p>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <p>This page redirects afte 30 seconds.</p>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <p>This page refreshes after 5 seconds.</p>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <p>This page redirects after exactly 20 hours.</p>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>This page does not refresh.</p>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>This page does not refresh.</p>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>This page does not redirect.</p>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>This page does not refresh.</p>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>This page does not refresh.</p>
INCONSISTENT | Inapplicable Example 6 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>This page does not refresh.</p>
INCONSISTENT | Inapplicable Example 7 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>This page does not redirect.</p>
INCONSISTENT | Inapplicable Example 8 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p>This page does not redirect.</p>

### 14% HTML page lang attribute has valid language tag (bf051a)

WCAG 3.1.1 · Coverage: partial · 1/7 consistent
Ed11y validates the lang attribute value. The META_LANG check fires for missing lang, META_LANG_VALID for invalid codes.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="FR"></html>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en-US-GB"></html>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="em-US"></html>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="#1"></html>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <p lang="en">I love ACT rules!</p>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <p lang="lb">Lëtzebuerg ass e Land an Europa.</p>
Consistent | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C

### 0% Meta element has no refresh delay (no exception) (bisz58)

WCAG 2.2.4, WCAG 3.2.5 · Coverage: full · 0/13 consistent
Same ed11y check as bc659a. ACT has two rules for this with different WCAG mappings.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="0; URL='https://w3.org'" />
    </head>
    </html>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="0; https://w3.org" />
    	<meta http-equiv="refresh" content="30; https://w3.org" />
    </head>
    </html>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="30" />
    </head>
    </html>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="72001; URL='https://w3.org'" />
    </head>
    </html>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="0: https://w3.org" />
    	<meta http-equiv="refresh" content="72001; https://w3.org" />
    </head>
    </html>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" />
    </head>
    </html>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta content="72001" />
    </head>
    </html>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="0: http://example.com" />
    </head>
    </html>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="-00.12 foo" />
    </head>
    </html>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="; 72001" />
    </head>
    </html>
INCONSISTENT | Inapplicable Example 6 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="" />
    </head>
    </html>
INCONSISTENT | Inapplicable Example 7 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="+72001; http://w3.org" />
    </head>
    </html>
INCONSISTENT | Inapplicable Example 8 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta http-equiv="refresh" content="foo; URL='https://w3.org'" />
    </head>
    </html>

### 0% Link has non-empty accessible name (c487ae)

WCAG 2.4.4, WCAG 2.4.9, WCAG 4.1.2 · Coverage: partial · 0/28 consistent
Ed11y catches most empty-link patterns. Some ACT test cases use ARIA or role-based accessible names that ed11y does not evaluate for links. Image-level checks (MISSING_ALT_LINK) fire on some failing cases but also false-positive on passing ones, so they are excluded.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI"> Web Accessibility Initiative (WAI) </a>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <div role="link" onclick="openLink(event)" onkeyup="openLink(event)" tabindex="0">
    		Web Accessibility Initiative (WAI)
    	</div>
    	<script>
    		function openLink(event) {
    			if (event.type === 'click' || ['Enter', ' '].includes(event.key)) {
    				window.location.href = 'https://www.w3.org/WAI/'
    			}
    		}
    	</script>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <button role="link" onclick="window.location.href='https://www.w3.org/WAI/'">Click me for WAI!</button>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI"
    		><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" aria-label="Web Accessibility Initiative"
    	/></a>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI" title="Web Accessibility Initiative"
    		><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" alt=""
    	/></a>
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" title="Web Accessibility Initiative"/></a>
INCONSISTENT | Passed Example 7 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI"
    		><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" alt="" />Web Accessibility Initiative (WAI)</a
    	>
INCONSISTENT | Passed Example 8 | `passed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" aria-labelledby="id1"/></a>
    	<div id="id1">Web Accessibility Initiative (WAI)</div>
INCONSISTENT | Passed Example 9 | `passed` | `(none)` | no results | W3C
HTML source
    <a class="offScreenLink" href="https://www.w3.org/WAI">Web Accessibility Initiative (WAI)</a>
INCONSISTENT | Passed Example 10 | `passed` | `(none)` | no results | W3C
HTML source
    <img src="/WAI/content-assets/wcag-act-rules/test-assets/c487ae/planets.jpg" width="145" height="126" alt="Planets" usemap="#planetmap" />

    	<map name="planetmap">
    		<area shape="rect" coords="0,0,30,100" href="sun.htm" alt="Sun" />
    	</map>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="http://www.w3.org/WAI"></a>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" alt=""/></a>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="http://www.w3.org/WAI"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" role="presentation"/></a>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="http://www.w3.org/WAI"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" role="none"/></a>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" title=""/></a>
INCONSISTENT | Failed Example 6 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" aria-labelledby="id1"/></a>
    	<div id="id1"></div>
INCONSISTENT | Failed Example 7 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" aria-labelledby="id1"/></a>
INCONSISTENT | Failed Example 8 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI" style="left: -9999px; position: absolute;">
    		<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png" />
    	</a>
INCONSISTENT | Failed Example 9 | `failed` | `(none)` | no results | W3C
HTML source
    <img src="/WAI/content-assets/wcag-act-rules/test-assets/c487ae/planets.jpg" width="145" height="126" alt="Planets" usemap="#planetmap" />

    	<map name="planetmap">
    		<area shape="rect" coords="0,0,82,126" href="sun.htm" />
    	</map>
INCONSISTENT | Failed Example 10 | `failed` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI" role="none"> </a>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI" role="button">
    		Web Accessibility Initiative (WAI)
    	</a>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI" style="display: none;"><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/w3c-logo.png"/></a>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <a href="https://www.w3.org/WAI" style="visibility: hidden;">Some text</a>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <a aria-hidden="true" href="https://www.w3.org/WAI">
    		Web Accessibility Initiative (WAI)
    	</a>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <area shape="rect" coords="0,0,82,126" />
INCONSISTENT | Inapplicable Example 6 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <a />
INCONSISTENT | Passed Example 11 | `passed` | `(none)` | no results | W3C
HTML source
    See [<a href="https://act-rules.github.io/" role="doc-biblioref">ACT rules</a>]
INCONSISTENT | Failed Example 11 | `failed` | `(none)` | no results | W3C
HTML source
    See [<a href="https://act-rules.github.io/" role="doc-biblioref"
    		><img src="https://github.com/act-rules/act-rules.github.io/blob/develop/test-assets/shared/act-logo.png" alt=""/></a
    	>]

### 0% Iframe element has non-empty accessible name (cae760)

WCAG 4.1.2 · Coverage: partial · 0/11 consistent
Ed11y checks iframe and object elements for titles/labels. ACT rule is specifically about iframe.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <iframe title="Grocery List" src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html"> </iframe>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <iframe aria-label="Grocery list" src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html"> </iframe>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <div id="frame-title-helper">Grocery List</div>
    	<iframe aria-labelledby="frame-title-helper" src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html"> </iframe>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <iframe name="Grocery List" src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html"> </iframe>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <iframe src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html"> </iframe>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <iframe title="" src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html"> </iframe>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <iframe title=" " src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html"> </iframe>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <button>take me somewhere</button>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe style="display:none;" src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html"></iframe>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe tabindex="-1" src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html" style="height: 250px"> </iframe>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <iframe src="/WAI/content-assets/wcag-act-rules/test-assets/SC4-1-2-frame-doc.html" role="none"> </iframe>

### 0% Element with lang attribute has valid language tag (de46e4)

WCAG 3.1.2 · Coverage: todo · 0/19 consistent
Ed11y uses AI-based language detection to find mismatches. The ACT rule checks if the lang attribute value itself is valid BCP 47. Different approaches.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <article lang="en">
    			They wandered into a strange Tiki bar on the edge of the small beach town.
    		</article>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <blockquote lang="fr-CH">
    			Ils ont trouvé un étrange bar Tiki aux abords de la petite ville balnéaire.
    		</blockquote>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <p lang="en-US-GB">
    			They wandered into a strange Tiki bar on the edge of the small beach town.
    		</p>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <article lang="invalid">
    			<div lang="en">
    				They wandered into a strange Tiki bar on the edge of the small beach town.
    			</div>
    		</article>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <div lang="EN">
    			<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/fireworks.jpg" alt="Fireworks over Paris" />
    		</div>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <article lang="dutch">
    			Zij liepen een vreemde Tiki bar binnen, aan de rand van een dorpje aan het strand.
    		</article>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <article lang="#!">
    			They wandered into a strange Tiki bar on the edge of the small beach town.
    		</article>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <article lang="  ">
    			They wandered into a strange Tiki bar on the edge of the small beach town.
    		</article>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <article lang="english">
    			<p aria-hidden="true">
    				They wandered into a strange Tiki bar on the edge of the small beach town.
    			</p>
    		</article>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <article lang="English">
    			<p style="position: absolute; top: -9999px">
    				They wandered into a strange Tiki bar on the edge of the small beach town.
    			</p>
    		</article>
INCONSISTENT | Failed Example 6 | `failed` | `(none)` | no results | W3C
HTML source
    <article lang="en">
    			<div lang="invalid">
    				They wandered into a strange Tiki bar on the edge of the small beach town.
    			</div>
    		</article>
INCONSISTENT | Failed Example 7 | `failed` | `(none)` | no results | W3C
HTML source
    <div lang="invalid">
    			<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/fireworks.jpg" alt="Fireworks over Paris" />
    		</div>
INCONSISTENT | Failed Example 8 | `failed` | `(none)` | no results | W3C
HTML source
    <p lang="eng">I love ACT rules!</p>
INCONSISTENT | Failed Example 9 | `failed` | `(none)` | no results | W3C
HTML source
    <p lang="i-lux">Lëtzebuerg ass e Land an Europa.</p>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    They wandered into a strange Tiki bar on the edge of the small beach town.
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <article lang="">
    			They wandered into a strange Tiki bar on the edge of the small beach town.
    		</article>
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <p lang="hidden">
    			<span style="display: none;">
    				They wandered into a strange Tiki bar on the edge of the small beach town.
    			</span>
    		</p>
INCONSISTENT | Inapplicable Example 4 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div lang="invalid">
    			<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/fireworks.jpg" alt="" />
    		</div>
INCONSISTENT | Inapplicable Example 5 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div lang="invalid"></div>

### 0% Form field has non-empty accessible name (e086e5)

WCAG 1.3.1, WCAG 4.1.2 · Coverage: partial · 0/22 consistent
Ed11y checks common form inputs. ACT rule covers all form fields including select, textarea, and ARIA widget roles.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <label>
    		first name
    		<input />
    	</label>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <div>last name</div>
    	<input aria-label="last name" disabled />
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <label for="country">Country</label>
    	<select id="country">
    		<option>England</option>
    		<option>Scotland</option>
    		<option>Wales</option>
    		<option>Northern Ireland</option>
    	</select>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <div id="country">Country</div>
    	<textarea aria-labelledby="country"></textarea>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <input placeholder="Your search query" /> <button type="submit">search</button>
INCONSISTENT | Passed Example 6 | `passed` | `(none)` | no results | W3C
HTML source
    <div>Country</div>
    	<div aria-label="country" role="combobox" aria-disabled="true">England</div>
INCONSISTENT | Passed Example 7 | `passed` | `(none)` | no results | W3C
HTML source
    <div role="checkbox">I agree to the terms and conditions.</div>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <div>last name</div>
    	<input />
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <input disabled />
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <input aria-label=" " />
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <div id="country"></div>
    	<select aria-labelledby="country">
    		<option>England</option>
    	</select>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <label>
    		first name
    		<div role="textbox"></div>
    	</label>
INCONSISTENT | Failed Example 6 | `failed` | `(none)` | no results | W3C
HTML source
    <label for="firstname">first name</label>
    	<div role="textbox" id="firstname"></div>
INCONSISTENT | Failed Example 7 | `failed` | `(none)` | no results | W3C
HTML source
    <div role="textbox">first name</div>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <input aria-label="firstname" style="display:none;" />
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <input disabled aria-hidden="true" aria-label="firstname" />
INCONSISTENT | Inapplicable Example 3 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <select role="none" disabled>
    		<option value="volvo">Volvo</option>
    		<option value="saab">Saab</option>
    		<option value="opel">Opel</option>
    	</select>
INCONSISTENT | Passed Example 8 | `passed` | `(none)` | no results | W3C
HTML source
    <p id="dip">Add one or more dip:</p>
    	<div role="menu" aria-labelledby="dip">
    		<input type="checkbox" role="menuitemcheckbox" aria-labelledby="ketchup" /><span id="ketchup" aria-hidden="true">Ketchup</span
    		><br />
    		<input type="checkbox" role="menuitemcheckbox" aria-labelledby="mayonnaise" /><span id="mayonnaise" aria-hidden="true"
    			>Mayonnaise</span
    		>
    	</div>
INCONSISTENT | Failed Example 8 | `failed` | `(none)` | no results | W3C
HTML source
    <p id="dip">Add one or more dip:</p>
    	<div role="menu" aria-labelledby="dip">
    		<input type="checkbox" role="menuitemcheckbox" /><span aria-hidden="true">Ketchup</span><br />
    		<input type="checkbox" role="menuitemcheckbox" /><span aria-hidden="true">Mayonnaise</span>
    	</div>
INCONSISTENT | Passed Example 8 | `passed` | `(none)` | no results | W3C
HTML source
    <p id="dip">Add one or more dip:</p>
    	<div role="menu" aria-labelledby="dip">
    		<input type="checkbox" role="menuitemcheckbox" aria-labelledby="ketchup" /><span id="ketchup" aria-hidden="true"
    			>Ketchup</span
    		><br />
    		<input type="checkbox" role="menuitemcheckbox" aria-labelledby="mayonnaise" /><span id="mayonnaise" aria-hidden="true"
    			>Mayonnaise</span
    		>
    	</div>
INCONSISTENT | Passed Example 9 | `passed` | `(none)` | no results | W3C
HTML source
    <label>
    		Favorite color
    		<input type="color" />
    	</label>
INCONSISTENT | Failed Example 9 | `failed` | `(none)` | no results | W3C
HTML source
    <label>Date of birth</label> <input type="date" />

### 0% Heading has non-empty accessible name (ffd0e9)

ARIA · Coverage: full · 0/15 consistent
This is an ARIA spec rule, not directly WCAG.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <h1>ACT rules</h1>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <div role="heading" aria-level="1">ACT rules</div>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <span id="h-name" hidden>ACT rules</span>
    	<h1 aria-labelledby="h-name">Learn about ACT rules</h1>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <h1><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/act-logo.png" alt="ACT rules" /></h1>
INCONSISTENT | Passed Example 5 | `passed` | `(none)` | no results | W3C
HTML source
    <h1 style="position: absolute; top: -9999px">ACT rules</h1>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <h1><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/act-logo.png" alt="" /></h1>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <h1 aria-label=""><span aria-hidden="true">ACT rules</span></h1>
INCONSISTENT | Failed Example 3 | `failed` | `(none)` | no results | W3C
HTML source
    <span id="h-name" hidden></span>
    	<h1 aria-labelledby="h-name"><span aria-hidden="true">ACT rules</span></h1>
INCONSISTENT | Failed Example 4 | `failed` | `(none)` | no results | W3C
HTML source
    <h1><img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/act-logo.png" alt="ACT rules" role="presentation" /></h1>
INCONSISTENT | Failed Example 5 | `failed` | `(none)` | no results | W3C
HTML source
    <h1><br /></h1>
INCONSISTENT | Failed Example 6 | `failed` | `(none)` | no results | W3C
HTML source
    <span>Hello</span>
    	<h1></h1>
    	<span>World!</span>
INCONSISTENT | Failed Example 7 | `failed` | `(none)` | no results | W3C
HTML source
    <div role="heading" aria-level="1" style="border-style: solid"></div>
INCONSISTENT | Failed Example 8 | `failed` | `(none)` | no results | W3C
HTML source
    <h1 aria-label="" role="none"><span aria-hidden="true">ACT rules</span></h1>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div></div>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <h1 aria-hidden="true"></h1>

### 0% Menuitem has non-empty accessible name (m6b1q3)

WCAG 4.1.2 · Coverage: todo · 0/8 consistent
BTN_EMPTY does not currently target [role="menuitem"]. The discovery signal (0.83) may be from empty buttons in the test case HTML, not the menuitems themselves. Needs investigation.

Status | Test Case | Expected | Matched Keys | All Ed11y Results | Source
--- | --- | --- | --- | --- | ---
INCONSISTENT | Passed Example 1 | `passed` | `(none)` | no results | W3C
HTML source
    <div role="menu">
    		<button role="menuitem">New file</button>
    	</div>
INCONSISTENT | Passed Example 2 | `passed` | `(none)` | no results | W3C
HTML source
    <div role="menu">
    		<button role="menuitem" aria-label="New file">
    			<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/file.svg" alt="" />
    		</button>
    	</div>
INCONSISTENT | Passed Example 3 | `passed` | `(none)` | no results | W3C
HTML source
    <div role="menu">
    		<button role="menuitem" aria-labelledby="newfile">
    			<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/file.svg" alt="" />
    			<span id="newfile" hidden>New file</span>
    		</button>
    	</div>
INCONSISTENT | Passed Example 4 | `passed` | `(none)` | no results | W3C
HTML source
    <div role="menu">
    		<button role="menuitem" title="New file">
    			<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/file.svg" alt="" />
    		</button>
    	</div>
INCONSISTENT | Failed Example 1 | `failed` | `(none)` | no results | W3C
HTML source
    <div role="menu">
    		<button role="menuitem">
    			<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/file.svg" alt="" />
    		</button>
    	</div>
INCONSISTENT | Failed Example 2 | `failed` | `(none)` | no results | W3C
HTML source
    <!DOCTYPE html>
    <html lang="en">
    	<style>
    		.offscreen {
    			position: absolute;
    			left: -9999px;
    			top: -9999px;
    		}
    	</style>
    	<div role="menu" class="offscreen">
    		<button role="menuitem">
    			<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/file.svg" alt="" />
    		</button>
    	</div>
    </html>
INCONSISTENT | Inapplicable Example 1 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <menu>
    		<li>
    			<a href="#">New file</a>
    		</li>
    	</menu>
INCONSISTENT | Inapplicable Example 2 | `inapplicable` | `(none)` | no results | W3C
HTML source
    <div role="menu" hidden>
    		<button role="menuitem">
    			<img src="/WAI/content-assets/wcag-act-rules/test-assets/shared/file.svg" alt="" />
    		</button>
    	</div>