Skip to content

Commit c524072

Browse files
authored
Merge pull request #696 from craftcms/feature/pt-1087-sidebar-nav-heading-text-is-not-marked-as-a-heading
Use headings and nav for sidebars
2 parents 78e6b3b + 085dce1 commit c524072

File tree

4 files changed

+76
-41
lines changed

4 files changed

+76
-41
lines changed

docs/.vuepress/theme/components/LeftBar.vue

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<template>
2-
<aside class="left-bar">
2+
<nav class="left-bar" aria-labelledby="main-nav-heading">
3+
<h2 id="main-nav-heading" class="sr-only">Sidebar</h2>
34
<div class="wrap">
45
<div id="top" class="h-12 flex items-center">
56
<RouterLink :to="`/`" ref="siteName" class="site-name font-bold px-4 mt-1">{{ $siteTitle }}</RouterLink>
@@ -63,7 +64,7 @@
6364
</div>
6465
</transition>
6566
</div>
66-
</aside>
67+
</nav>
6768
</template>
6869

6970
<style lang="postcss">

docs/.vuepress/theme/components/RightBar.vue

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
<div class="switch-wrapper hidden xl:block">
44
<ColorModeSwitch v-on="$listeners" :on="isDark" />
55
</div>
6-
<nav class="sidebar-link-wrapper">
6+
<nav class="sidebar-link-wrapper" aria-labelledby="right-bar-nav-heading">
77
<SidebarLinks
88
:depth="depth"
99
:sidebar-depth="$page.frontmatter.sidebarDepth || sidebarDepth"
1010
:items="headingItems"
1111
fixed-heading="On this Page"
12+
fixed-heading-id="right-bar-nav-heading"
13+
heading-level="h2"
1214
/>
1315
</nav>
1416
</div>

docs/.vuepress/theme/components/SidebarGroup.vue

+62-38
Original file line numberDiff line numberDiff line change
@@ -9,37 +9,42 @@
99
`depth-${depth}`,
1010
]"
1111
>
12-
<RouterLink
13-
v-if="item.path"
14-
class="sidebar-heading clickable"
15-
:class="{
16-
open,
17-
active: isActive($route, item.path),
18-
}"
19-
:to="item.path"
20-
@click.native="$emit('toggle')"
12+
<component
13+
:id="fixedHeadingId"
14+
:is="headingLevel"
2115
>
22-
<span>{{ item.title }}</span>
23-
<span v-if="collapsible" class="arrow" :class="open ? 'down' : 'right'" />
24-
</RouterLink>
25-
26-
<button
27-
v-else-if="collapsible"
28-
class="sidebar-heading"
29-
:class="{ open }"
30-
@click="$emit('toggle')"
31-
>
32-
<span>{{ fixedHeading || item.title }}</span>
33-
<span class="arrow" :class="open ? 'down' : 'right'" />
34-
</button>
35-
36-
<p
37-
v-else
38-
class="sidebar-heading"
39-
:class="{ open }"
40-
>
41-
<span>{{ fixedHeading || item.title }}</span>
42-
</p>
16+
<RouterLink
17+
v-if="item.path"
18+
class="sidebar-heading clickable"
19+
:class="{
20+
open,
21+
active: isActive($route, item.path),
22+
}"
23+
:to="item.path"
24+
@click.native="$emit('toggle')"
25+
>
26+
<span>{{ item.title }}</span>
27+
<span v-if="collapsible" class="arrow" :class="open ? 'down' : 'right'" />
28+
</RouterLink>
29+
30+
<button
31+
v-else-if="collapsible"
32+
class="sidebar-heading"
33+
:class="{ open }"
34+
@click="$emit('toggle')"
35+
>
36+
<span>{{ fixedHeading || item.title }}</span>
37+
<span class="arrow" :class="open ? 'down' : 'right'" />
38+
</button>
39+
40+
<p
41+
v-else
42+
class="sidebar-heading"
43+
:class="{ open }"
44+
>
45+
<span>{{ fixedHeading || item.title }}</span>
46+
</p>
47+
</component>
4348

4449
<DropdownTransition>
4550
<SidebarLinks
@@ -64,14 +69,33 @@ export default {
6469
DropdownTransition,
6570
},
6671
67-
props: [
68-
"item",
69-
"open",
70-
"collapsible",
71-
"depth",
72-
"sidebarDepth",
73-
"fixedHeading",
74-
],
72+
props: {
73+
item: {
74+
type: Object
75+
},
76+
open: {
77+
type: Boolean
78+
},
79+
collapsible: {
80+
type: Boolean
81+
},
82+
depth: {
83+
type: Number
84+
},
85+
sidebarDepth: {
86+
type: Number
87+
},
88+
fixedHeading: {
89+
type: String
90+
},
91+
fixedHeadingId: {
92+
type: String
93+
},
94+
headingLevel: {
95+
type: String,
96+
default: 'h3'
97+
}
98+
},
7599
76100
// ref: https://vuejs.org/v2/guide/components-edge-cases.html#Circular-References-Between-Components
77101
beforeCreate() {

docs/.vuepress/theme/components/SidebarLinks.vue

+8
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
:sidebar-depth="sidebarDepth"
1111
:depth="depth"
1212
:fixed-heading="fixedHeading"
13+
:fixed-heading-id="fixedHeadingId"
14+
:heading-level="headingLevel"
1315
@toggle="toggleGroup(i)"
1416
/>
1517
<ToggleSidebarGroup
@@ -69,6 +71,12 @@ export default {
6971
fixedHeading: {
7072
type: String
7173
},
74+
fixedHeadingId: {
75+
type: String
76+
},
77+
headingLevel: {
78+
type: String
79+
}
7280
},
7381
7482
data() {

0 commit comments

Comments
 (0)