Skip to content

Commit 341dfa2

Browse files
committed
feat(core): add aria-current to active links (close vuejs#2116)
1 parent 479510b commit 341dfa2

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

Diff for: src/components/link.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ export default {
6767
? classes[exactActiveClass]
6868
: isIncludedRoute(current, compareTarget)
6969

70+
const ariaCurrentValue = classes[activeClass] ? 'page' : null
71+
7072
const handler = e => {
7173
if (guardEvent(e)) {
7274
if (this.replace) {
@@ -117,7 +119,7 @@ export default {
117119

118120
if (this.tag === 'a') {
119121
data.on = on
120-
data.attrs = { href }
122+
data.attrs = { href, 'aria-current': ariaCurrentValue }
121123
} else {
122124
// find the first <a> child and apply listener and href
123125
const a = findAnchor(this.$slots.default)
@@ -145,6 +147,7 @@ export default {
145147

146148
const aAttrs = (a.data.attrs = extend({}, a.data.attrs))
147149
aAttrs.href = href
150+
aAttrs['aria-current'] = ariaCurrentValue
148151
} else {
149152
// doesn't have <a> child, apply listener to self
150153
data.on = on

Diff for: test/e2e/specs/active-links.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,15 @@ module.exports = {
6060
function assertActiveLinks (n, activeA, activeLI, exactActiveA, exactActiveLI) {
6161
browser.click(`li:nth-child(${n}) a`)
6262
activeA.forEach(i => {
63-
browser.assert.cssClassPresent(`li:nth-child(${i}) a`, 'router-link-active')
63+
browser
64+
.assert.cssClassPresent(`li:nth-child(${i}) a`, 'router-link-active')
65+
.assert.attributeEquals(`li:nth-child(${i}) a`, 'aria-current', 'page')
6466
})
6567
activeLI &&
6668
activeLI.forEach(i => {
67-
browser.assert.cssClassPresent(`li:nth-child(${i})`, 'router-link-active')
69+
browser
70+
.assert.cssClassPresent(`li:nth-child(${i})`, 'router-link-active')
71+
.assert.attributeEquals(`li:nth-child(${i}) a`, 'aria-current', 'page')
6872
})
6973
exactActiveA.forEach(i => {
7074
browser.assert

0 commit comments

Comments
 (0)