A focused accessible button demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Accessible Button</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><button class="ui-control" type="button">Save changes</button></section>
</body>
</html>
Copy HTML + CSS Download ZIP
A focused icon button demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Icon Button</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><button class="ui-control ui-icon" type="button" aria-label="Add item"><span aria-hidden="true">+</span></button></section>
</body>
</html>
Copy HTML + CSS Download ZIP
A focused form field with hint demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Form Field with Hint</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><div class="ui-field"><label for="project-name">Project name</label><input id="project-name" aria-describedby="project-hint"><p id="project-hint">Use a short name your team will recognise.</p></div></section>
</body>
</html>
Copy HTML + CSS Download ZIP
A focused form field with error demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Form Field with Error</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><div class="ui-field"><label for="email">Email address</label><input id="email" type="email" aria-invalid="true" aria-describedby="email-error"><p id="email-error" class="ui-error">Enter an email address in the format name@example.com.</p></div></section>
</body>
</html>
Copy HTML + CSS Download ZIP
A focused accessible alert demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Accessible Alert</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><div class="ui-alert" role="alert"><strong>Could not save changes.</strong><p>Check your connection and try again.</p></div></section>
</body>
</html>
Copy HTML + CSS Download ZIP
A focused status message demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Status Message</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><p class="ui-status" role="status">Your changes were saved.</p></section>
</body>
</html>
Copy HTML + CSS Download ZIP
A focused accordion demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Accordion</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><details class="ui-details"><summary>What is included?</summary><p>Semantic markup, focus styles and implementation notes.</p></details></section>
</body>
</html>
Copy HTML + CSS Download ZIP
08
Mobile Navigation Trigger # A focused mobile navigation trigger demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mobile Navigation Trigger</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><button class="ui-control" type="button" aria-expanded="false" aria-controls="example-navigation">Menu</button><nav id="example-navigation" aria-label="Example"><a href="#home">Home</a><a href="#work">Work</a></nav></section>
</body>
</html>
Copy HTML + CSS Download ZIP
A focused skip link demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Skip Link</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><a class="ui-skip" href="#example-main">Skip to main content</a><main id="example-main" tabindex="-1"><p>Main content begins here.</p></main></section>
</body>
</html>
Copy HTML + CSS Download ZIP
A focused loading button demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Loading Button</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><button class="ui-control" type="button" disabled aria-busy="true"><span class="ui-spinner" aria-hidden="true"></span> Saving…</button></section>
</body>
</html>
Copy HTML + CSS Download ZIP
11
Accessible Rating Input # A focused accessible rating input demonstrating meaningful semantics, accessible naming and visible focus.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Accessible Rating Input</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="ui-demo"><fieldset class="ui-rating"><legend>Rate this example</legend><label><input type="radio" name="rating" value="1"> 1 star</label><label><input type="radio" name="rating" value="2"> 2 stars</label><label><input type="radio" name="rating" value="3"> 3 stars</label></fieldset></section>
</body>
</html>
Copy HTML + CSS Download ZIP