Skip to content
Open
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ad61876
change doctype to html5 one
fstrr Mar 6, 2026
9fab686
remove type attr from script tags
fstrr Mar 6, 2026
eaca78f
remove unnecessary type attrs on style tags
fstrr Mar 6, 2026
24187c5
add or update meta viewport tag
fstrr Mar 6, 2026
e92da7d
standardize meta charset tag
fstrr Mar 6, 2026
6d2d113
remove extra attrs from html element
fstrr Mar 6, 2026
865c510
add “: WCAG 2” to the end of each <title> element
fstrr Mar 6, 2026
c2741d5
give input element an accessible name
fstrr Mar 6, 2026
850c903
add consistent font familiy to pages
fstrr Mar 6, 2026
5eab3ac
Merge branch 'main' into standardize-working-examples
fstrr Mar 11, 2026
299df62
update the viewport settings
fstrr Mar 11, 2026
e338c8f
Apply suggestion from @patrickhlauke
patrickhlauke Mar 13, 2026
00d442d
Change ": WCAG 2" to " | WCAG 2" in working example titles
patrickhlauke Mar 16, 2026
61c3dfd
Back out jQuery removal
patrickhlauke Mar 16, 2026
b892dff
Harmonise doctype declaration to `<!DOCTYPE html>`
patrickhlauke Mar 16, 2026
01b4dfa
Bump minimatch (#4963)
dependabot[bot] Mar 17, 2026
d2a2d7c
Bump undici from 6.23.0 to 6.24.1 (#5001)
dependabot[bot] Mar 17, 2026
94da932
Merge branch 'main' into standardize-working-examples
fstrr Mar 17, 2026
8891f69
Merge branch 'main' into standardize-working-examples
fstrr Mar 17, 2026
6e856ca
Remove over-eager addition to non-head title element
kfranqueiro Mar 18, 2026
60f4313
Remove unnecessary type attributes and sources.css references
kfranqueiro Mar 18, 2026
a164ca0
Additional consistency pass
kfranqueiro Mar 18, 2026
e8e0f89
Another additional consistency pass (mainly whitespace)
kfranqueiro Mar 18, 2026
b39372e
Re-adjust sticky examples to retain ease of reproducing failure
kfranqueiro Mar 18, 2026
d7bfda3
Re-adjust reflow-nested-lists example to still fail as described
kfranqueiro Mar 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions working-examples/aria-alert-identify-errors/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Using ARIA live regions or role=alert to identify errors</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Using ARIA live regions or role=alert to identify errors: WCAG 2</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body{
background:#fff;
color:#000;
font-family:system-ui;
font:100% / 1.5 sans-serif;
}

input{
Expand Down
70 changes: 43 additions & 27 deletions working-examples/aria-alertdialog-identify-errors/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,54 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Using aria-alertdialog to Identify Errors</title>
<script src="http://code.jquery.com/jquery.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Using aria-alertdialog to Identify Errors: WCAG 2</title>
<script>
$(document).ready(function(e) {
$('#trigger-alertdialog').click(function() {
$('main').attr('aria-hidden','true');
var lastFocus = document.activeElement;
var modalOverlay = $('<div>').attr({id:"modalOverlay", tabindex:"0"});
$(modalOverlay).appendTo('body');
var dialog = $('<div>').attr({role:"alertdialog", "aria-labelledby":"alertHeading", tabindex:"0"});
$(dialog).html('<div id="firstElement" tabindex="0"></div><h1 id="alertHeading">Error</h1><p>Employee\'s Birth Date is after their hire date. Please verify the birth date and hire date.</p><button id="firstButton">Save and Continue</button><button id="lastButton">Return to page and correct error</button><div id="lastElement" tabindex="0"></div>').appendTo('body');
$('#firstButton').focus();
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('trigger-alertdialog').addEventListener('click', function(e) {
e.preventDefault();
const main = document.querySelector('main');
main.setAttribute('aria-hidden', 'true');
const lastFocus = document.activeElement;

$('#lastElement').focusin(function(e) {
$('#firstButton').focus();
});
$('#firstElement').focusin(function(e) {
$('#lastButton').focus();
});
const modalOverlay = document.createElement('div');
modalOverlay.id = 'modalOverlay';
modalOverlay.setAttribute('tabindex', '0');
document.body.appendChild(modalOverlay);

$('[role=alertdialog] button').click(function(e) {
$('main').attr('aria-hidden','false');
$(modalOverlay).remove();
$(dialog).remove();
lastFocus.focus();
});
return false;
const ariaDialog = document.createElement('div');
ariaDialog.setAttribute('role', 'alertdialog');
ariaDialog.setAttribute('aria-labelledby', 'alertHeading');
ariaDialog.setAttribute('tabindex', '0');
ariaDialog.innerHTML = '<div id="firstElement" tabindex="0"></div><h1 id="alertHeading">Error</h1><p>Employee\'s Birth Date is after their hire date. Please verify the birth date and hire date.</p><button id="firstButton">Save and Continue</button><button id="lastButton">Return to page and correct error</button><div id="lastElement" tabindex="0"></div>';
document.body.appendChild(ariaDialog);

document.getElementById('firstButton').focus();

document.getElementById('lastElement').addEventListener('focusin', function() {
document.getElementById('firstButton').focus();
});
document.getElementById('firstElement').addEventListener('focusin', function() {
document.getElementById('lastButton').focus();
});

ariaDialog.querySelectorAll('button').forEach(function(button) {
button.addEventListener('click', function() {
main.setAttribute('aria-hidden', 'false');
modalOverlay.remove();
ariaDialog.remove();
lastFocus.focus();
});
});
});

});
</script>
<style type="text/css">
<style>
body{
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
}
#modalOverlay {
width:100%;
height:100%;
Expand Down Expand Up @@ -65,7 +81,7 @@
<main>
<h1>Using aria-alertdialog to Identify Errors</h1>
<p>This example shows how role=&quot;alertdialog&quot; can be used to notify someone they have entered invalid information.</p>
<button id="trigger-alertdialog">Trigger Alertdialog</button>
<button id="trigger-alertdialog" type="button">Trigger Alertdialog</button>
</main>
</body>
</html>
22 changes: 12 additions & 10 deletions working-examples/aria-grouping-multipart-fields-ssn/index.html
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Marking up multi-part groups of form fields</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Marking up multi-part groups of form fields: WCAG 2</title>
<style>
:root {
box-sizing: border-box;
}

body{
font:100% / 1.5 system-ui;
}
:root {
box-sizing: border-box;
}

body{
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
}

#ssn1{
margin-block-end: 0.5rem;
Expand Down
14 changes: 8 additions & 6 deletions working-examples/aria-grouping-related-fields/index.html
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Using grouping roles to identify related form controls</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta charset="UTF-8">
<title>Using grouping roles to identify related form controls: WCAG 2</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>

:root{
box-sizing: border-box;
}

body{
font:100% / 1.5 system-ui;
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
}

div[role=group], div[role=radiogroup] {
Expand Down
15 changes: 8 additions & 7 deletions working-examples/aria-icon-font-img-role/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Semantically identifying a font icon with role="img" examples</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Semantically identifying a font icon with role="img" examples: WCAG 2</title>
<style>
body{
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
margin: 2rem 2rem 4rem 2rem;
}

/* Icon Fonts Styling */

body {
background-color: #fafafc;
font-family: "Times New Roman", Times, serif;
margin: 2rem 2rem 4rem 2rem;
}

@font-face {
font-family: 'IconFontRoleImg';
src: url('fonts/icon-font-role-img.eot?i66rw8');
Expand Down
16 changes: 11 additions & 5 deletions working-examples/aria-invalid-data-format/index.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Forms: Using aria-invalid </title>
<style type="text/css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Forms: Using aria-invalid : WCAG 2</title>
<style>
body{
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
}
div.control label {
margin: 0;
padding: 0;
Expand Down Expand Up @@ -35,7 +41,7 @@
}
</style>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/JavaScript" src="valcheck.js"></script>
<script src="valcheck.js"></script>
</head>
<body>
<h2>Forms: Using aria-invalid to identify failed fields </h2>
Expand Down
12 changes: 9 additions & 3 deletions working-examples/aria-invalid-required-fields/index.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<!DOCTYPE HTML>
<html lang="en">
<head> <title>Input Error Notification with aria-live=assertive and aria-invalid using jQuery</title>
<meta charset="utf-8">
<head> <title>Input Error Notification with aria-live=assertive and aria-invalid using jQuery: WCAG 2</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(document).ready(function(e) {
Expand Down Expand Up @@ -32,7 +33,12 @@
});
});
</script>
<style type="text/css">
<style>
body{
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
}
label.failed {
border: red thin solid;
}
Expand Down
11 changes: 7 additions & 4 deletions working-examples/aria-label-accessible-name-dialog/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@
<html lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>aria-label Example: close button</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>aria-label Example: close button: WCAG 2</title>

<style>
body {
font-family: sans-serif;
body{
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
}

button {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title>ARIA10 Example 1</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ARIA10 Example 1: WCAG 2</title>
<style>
body{
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
}
</style>
</head>

<body>
Expand Down
14 changes: 11 additions & 3 deletions working-examples/aria-labelledby-table-text-inputs/index.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Testing aria-labelledby: A simple table with text inputs - code</title>
</head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Testing aria-labelledby: A simple table with text inputs - code: WCAG 2</title>
<style>
body{
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
}
</style>
</head>

<body>
<table cellpadding="0">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>aria-labelledby example 1: Extend time-out</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>aria-labelledby example 1: Extend time-out: WCAG 2</title>
<style>
body{
background:#fff;
color:#000;
font-family: system-ui;
font:100% / 1.5 sans-serif;
}
</style>
</head>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Dinosaur conference</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta charset="UTF-8">
<title>Dinosaur conference: WCAG 2</title>
<meta name="viewport" content="width=device-width, initial-scale=1">

<style>
body{
background:#fff;
color:#000;
font:1rem / 1.5 system-ui;
font:100% / 1.5 sans-serif;
}

table{
Expand Down
21 changes: 16 additions & 5 deletions working-examples/aria-role-log/chatlog.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Using role=log with chat conversation</title>
<link rel="stylesheet" type="text/css" href="sources.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Using role=log with chat conversation: WCAG 2</title>
<style>
body{
background:#fff;
color:#000;
font:100% / 1.5 sans-serif;
}

.scrollable {
height: 10rem;
overflow-y: auto;
}
label{
display:block;
}
</style>
</head>
<body>
Expand Down Expand Up @@ -46,7 +56,7 @@


</script>
<div role="main">
<main>
<h1>Using <code>role="log"</code> with chat conversation</h1>
<p>This simple script demonstrates how the conversation region in a chat is updated and surfaced to ATs using the aria <code>log</code> role. Here the role is placed on the region containing the dynamically updating conversation. This is not intended to be a fully-functional chat client, but to demonstrate the use of log role. In this mock demo, the conversation is updated with a brief, one-sided conversation, which is initiated by pressing Send.</p>
<hr>
Expand All @@ -56,10 +66,11 @@ <h2>Conversation</h2>
</div>
<div>
<h2>Mock input</h2>
<input type="text" name="fakeinput" readonly value="Hello"> <button id="btn" onclick="initiateChat()">Send</button>
<label for="fakeinput">Enter a message</label>
<input id="fakeinput" type="text" name="fakeinput" readonly value="Hello"> <button id="btn" onclick="initiateChat()" type="button">Send</button>
</div>

</div>
</main>


</body>
Expand Down
Loading
Loading