Skip to content

Commit 7eb21e5

Browse files
authored
(docs) make demo page more keyboard accessible (highlightjs#3371)
1 parent 998e25e commit 7eb21e5

File tree

3 files changed

+23
-12
lines changed

3 files changed

+23
-12
lines changed

demo/demo.js

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
hljs.debugMode();
22
hljs.highlightAll();
33

4-
document.querySelectorAll(".categories > li").forEach((category) => {
4+
document.querySelectorAll(".categories li a").forEach((category) => {
55
category.addEventListener("click", (event) => {
6+
event.preventDefault();
7+
68
const current = document.querySelector(".categories .current");
79
const currentCategory = current.dataset.category;
810
const nextCategory = event.target.dataset.category;
@@ -23,15 +25,21 @@ document.querySelectorAll(".categories > li").forEach((category) => {
2325
});
2426
});
2527

26-
document.querySelectorAll(".styles > li").forEach((style) => {
28+
document.querySelectorAll(".styles li a").forEach((style) => {
2729
style.addEventListener("click", (event) => {
30+
event.preventDefault();
31+
2832
const current = document.querySelector(".styles .current");
2933
const currentStyle = current.textContent;
3034
const nextStyle = event.target.textContent;
3135

3236
if (currentStyle !== nextStyle) {
33-
document.querySelector(`link[title="${nextStyle}"]`).removeAttribute("disabled");
34-
document.querySelector(`link[title="${currentStyle}"]`).setAttribute("disabled", "disabled");
37+
document
38+
.querySelector(`link[title="${nextStyle}"]`)
39+
.removeAttribute("disabled");
40+
document
41+
.querySelector(`link[title="${currentStyle}"]`)
42+
.setAttribute("disabled", "disabled");
3543

3644
current.classList.remove("current");
3745
event.target.classList.add("current");

demo/index.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ <h1><a href="https://highlightjs.org">highlight.js</a> demo</h1>
2323
<h2>Language Categories</h2>
2424
<ul class="categories">
2525
<% categories.forEach(({category, count}, i) => {%>
26-
<li <%= i ? '' : 'class="current"'%> data-category="<%= category %>"><%= `${category} (${count})` %></li>
26+
<li><a <%= i ? '' : 'class="current"'%> data-category="<%= category %>" href="#<%= category %>"><%= `${category} (${count})` %></a></li>
2727
<% }); %>
2828
</ul>
2929
<h2>Themes</h2>
3030
<ul class="styles">
31-
<li class="current">Default</li>
31+
<li><a class="current" href="#default">Default</a></li>
3232
<% styles.forEach(({name}) => {%>
33-
<li><%= name %></li>
33+
<li><a href="#<%= name %>"><%= name %></a></li>
3434
<% }); %>
3535
</ul>
3636
</aside>

demo/style.css

+8-5
Original file line numberDiff line numberDiff line change
@@ -102,16 +102,19 @@ aside ul::-webkit-scrollbar-thumb:active {
102102
background: #5d3333;
103103
}
104104

105-
aside li {
106-
padding: 1px 1em;
107-
cursor: pointer;
105+
aside ul a {
106+
display: block;
107+
padding: 1px 0.5em 1px 1em;
108+
text-decoration: none;
108109
}
109110

110-
aside li:hover {
111+
aside ul a:focus,
112+
aside ul a:hover {
111113
background: #500;
114+
outline: none;
112115
}
113116

114-
aside li.current:before {
117+
aside ul a.current:before {
115118
content: "▶";
116119
font-size: smaller;
117120
position: absolute;

0 commit comments

Comments
 (0)