Skip to content

Commit c8e30f4

Browse files
authored
Merge pull request #43 from webxdc/wofwca/a11y-fix-tabs
fix: a11y: fix tabs
2 parents af90a09 + 0526373 commit c8e30f4

File tree

2 files changed

+53
-10
lines changed

2 files changed

+53
-10
lines changed

index.html

Lines changed: 48 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,12 @@
2525
</head>
2626
<body>
2727
<div class="pages">
28-
<div class="page active" id="page-webxdc">
28+
<div
29+
class="page active"
30+
id="page-webxdc"
31+
role="tabpanel"
32+
aria-labelledby="tab-webxdc"
33+
>
2934
<div class="card" id="realtime-output"></div>
3035
<script src="js/realtime.js"></script>
3136
<div class="card" id="uploads-output"></div>
@@ -50,7 +55,12 @@
5055
<div class="card" id="info-output"></div>
5156
<script src="js/info.js"></script>
5257
</div>
53-
<div class="page" id="page-web-api">
58+
<div
59+
class="page"
60+
id="page-web-api"
61+
role="tabpanel"
62+
aria-labelledby="tab-web-api"
63+
>
5464
<div class="card" id="storage-output"></div>
5565
<script src="js/storage.js"></script>
5666
<div class="card" id="unload-output"></div>
@@ -67,7 +77,12 @@
6777
<div class="card" id="links-output"></div>
6878
<script src="js/links.js"></script>
6979
</div>
70-
<div class="page" id="page-sandbox">
80+
<div
81+
class="page"
82+
id="page-sandbox"
83+
role="tabpanel"
84+
aria-labelledby="tab-sandbox"
85+
>
7186
<div class="card" id="cookies-output"></div>
7287
<script src="js/cookies.js"></script>
7388
<div class="card" id="camera-access"></div>
@@ -158,10 +173,34 @@ <h2>DNS Prefetch</h2>
158173
<script src="js/dns-prefetch.js"></script>
159174
</div>
160175
</div>
161-
<div class="tabs">
162-
<div class="tab active" id="tab-webxdc">Webxdc</div>
163-
<div class="tab" id="tab-web-api">Web API</div>
164-
<div class="tab" id="tab-sandbox">Sandboxing</div>
176+
<div class="tabs" role="tablist" aria-orientation="horizontal">
177+
<button
178+
role="tab"
179+
aria-controls="page-webxdc"
180+
class="tab"
181+
aria-selected="true"
182+
id="tab-webxdc"
183+
>
184+
Webxdc
185+
</button>
186+
<button
187+
role="tab"
188+
aria-controls="page-web-api"
189+
aria-selected="false"
190+
class="tab"
191+
id="tab-web-api"
192+
>
193+
Web API
194+
</button>
195+
<button
196+
role="tab"
197+
aria-controls="page-sandbox"
198+
aria-selected="false"
199+
class="tab"
200+
id="tab-sandbox"
201+
>
202+
Sandboxing
203+
</button>
165204
</div>
166205
<script>
167206
var tabs = [
@@ -182,10 +221,10 @@ <h2>DNS Prefetch</h2>
182221
tab.onclick = () => {
183222
tabs.forEach(({ page, tab }) => {
184223
page.classList.remove("active");
185-
tab.classList.remove("active");
224+
tab.ariaSelected = false;
186225
});
187226
page.classList.add("active");
188-
tab.classList.add("active");
227+
tab.ariaSelected = true;
189228
};
190229
}
191230
</script>

styles.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,15 @@ body {
8282
.tab {
8383
flex-grow: 1;
8484
height: 36px;
85+
padding: 0;
86+
border: none;
87+
margin: 0;
88+
background-color: transparent;
8589
font-size: 1.3em;
8690
text-align: center;
8791
align-content: center;
8892
}
8993

90-
.tab.active {
94+
.tab[aria-selected="true"] {
9195
background-color: lightgrey;
9296
}

0 commit comments

Comments
 (0)