Skip to content

Commit 2e84b1b

Browse files
authored
Merge pull request #870 from mulesoft/W-17627001-fix-nav-version-bad-listbox-children-for-aria-role
[W-17627001] Fix: nav-version-menu includes listbox aria role without required children
2 parents 1e271bd + 1551783 commit 2e84b1b

File tree

5 files changed

+54
-32
lines changed

5 files changed

+54
-32
lines changed

src/css/components/tooltip.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
}
4949

5050
&.tooltip-dot-nav-version {
51-
margin-left: 6px;
51+
margin-left: -12px;
5252
margin-top: 8px;
5353
}
5454
}

src/css/specific/nav.css

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -391,13 +391,14 @@ svg.nav-icon {
391391
max-height 0s var(--transition-speed-sm);
392392
}
393393

394-
& button,
395-
& span:not(.tooltip-dot-nav-version-menu, .tooltip-dot-nav-version) {
394+
& .nav-version-option,
395+
& .nav-version-label {
396396
display: list-item;
397397
padding: var(--xs) var(--input-md) var(--xs) var(--sm);
398398
}
399399

400400
& .nav-version-label {
401+
clear: both;
401402
font-weight: var(--weight-bold);
402403
}
403404

@@ -421,6 +422,8 @@ svg.nav-icon {
421422
color: var(--steel-3);
422423
cursor: pointer;
423424
float: right;
425+
font-size: 13px;
426+
font-weight: normal;
424427
text-align: left;
425428
width: 90%;
426429

src/js/01-nav.js

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -272,13 +272,6 @@
272272

273273
const coerceToArray = (val) => (Array.isArray(val) ? val : [val])
274274

275-
const clearSelected = (parentElement) => {
276-
const childrenElements = parentElement.querySelectorAll('button.selected')
277-
childrenElements.forEach((child) => {
278-
child.classList.remove('selected')
279-
})
280-
}
281-
282275
const setTitle = (title) => (isArchiveSite() ? `Archive ${title}` : homeTitle)
283276

284277
const isArchiveSite = () => window.location.host.includes('archive')
@@ -654,28 +647,47 @@
654647
if (page.navVersionIconId) {
655648
navVersionWrapper.appendChild(createSvgElement('.icon.nav-version-icon', '#' + page.navVersionIconId))
656649
}
650+
651+
const currentNavGroup = createElement('div')
652+
currentNavGroup.setAttribute('role', 'group')
653+
const currentNavLabel = createElement('div.nav-version-label')
654+
currentNavLabel.setAttribute('role', 'presentation')
655+
currentNavGroup.appendChild(currentNavLabel)
656+
657+
const catchallNavGroup = createElement('div')
658+
catchallNavGroup.setAttribute('role', 'group')
659+
const catchallNavLabel = createElement('div.nav-version-label')
660+
catchallNavLabel.setAttribute('role', 'presentation')
661+
catchallNavGroup.appendChild(catchallNavLabel)
662+
657663
versions.reduce((lastVersionData, versionData) => {
658664
if (!isArchiveSite()) {
659665
if (versionData === currentVersionData) {
660-
navVersionMenu.appendChild(createElement('span.nav-version-label', currentVersion))
666+
currentNavLabel.textContent = currentVersion
667+
navVersionMenu.appendChild(currentNavGroup)
661668
} else if (versionData.prerelease) {
662669
if (!lastVersionData) {
663-
navVersionMenu.appendChild(createElement('span.nav-version-label', 'Prerelease versions'))
670+
currentNavLabel.textContent = 'Prerelease versions'
671+
navVersionMenu.appendChild(currentNavGroup)
664672
}
665673
} else if (lastVersionData === currentVersionData) {
666-
navVersionMenu.appendChild(createElement('span.nav-version-label', previousVersions))
674+
catchallNavLabel.textContent = previousVersions
675+
navVersionMenu.appendChild(catchallNavGroup)
667676
}
668677
} else if (versionData === currentVersionData) {
669-
navVersionMenu.appendChild(createElement('span.nav-version-label', 'Archived versions'))
678+
catchallNavLabel.textContent = 'Archived versions'
679+
navVersionMenu.appendChild(catchallNavGroup)
670680
}
681+
671682
const versionDataset = {
672683
version: versionData.version,
673684
}
674685
const navVersionOption = createElement(
675-
'button.nav-version-option',
686+
'div.nav-version-option',
676687
{ dataset: versionDataset },
677688
versionData.displayVersion
678689
)
690+
navVersionOption.setAttribute('role', 'option')
679691
navVersionOption.setAttribute('tabindex', '-1')
680692
navVersionOption.id = `${componentData.name}-${versionData.displayVersion}`
681693
navVersionOption.addEventListener('keydown', (e) => {
@@ -690,15 +702,19 @@
690702
navVersionOption.addEventListener('blur', () => {
691703
setAriaActiveDescendant(componentData.name, versionData.displayVersion, false)
692704
})
693-
if (versionData === currentVersionData) {
694-
addCurrentVersionIndicator(navVersionMenu, 'tooltip-dot-nav-version')
695-
}
696705
if (versionData.version === activeVersion) {
697706
navVersionOption.classList.add('selected')
698707
}
699-
navVersionMenu
700-
.appendChild(navVersionOption)
701-
.addEventListener('click', (e) => this.selectVersion(navVersionMenu, navItem, componentData, e))
708+
if (versionData === currentVersionData) {
709+
addCurrentVersionIndicator(navVersionOption, 'tooltip-dot-nav-version')
710+
}
711+
if (!isArchiveSite() && versionData === currentVersionData) {
712+
currentNavGroup.appendChild(navVersionOption)
713+
} else {
714+
catchallNavGroup.appendChild(navVersionOption)
715+
}
716+
717+
navVersionMenu.addEventListener('click', (e) => this.selectVersion(navVersionMenu, navItem, componentData, e))
702718
return versionData
703719
}, undefined)
704720
navVersionWrapper.addEventListener('mousedown', (e) => {
@@ -720,7 +736,8 @@
720736
autoCloseVersionDropdown(navVersionMenu)
721737
})
722738
if (versions.length > 1) navVersionDropdown.appendChild(navVersionMenu)
723-
navVersionMenu.lastChild?.addEventListener('blur', () => {
739+
const navOptions = navVersionMenu.querySelectorAll('.nav-version-option')
740+
navOptions[navOptions.length - 1]?.addEventListener('blur', () => {
724741
autoCloseVersionDropdown(navVersionMenu)
725742
})
726743

@@ -851,9 +868,11 @@
851868
}
852869

853870
selectVersion (navVersionMenu, navItem, componentData, e) {
854-
this.toggleNav(navItem, componentData, e.target.dataset.version)
855-
clearSelected(navItem)
871+
const allVersionOptions = navVersionMenu.querySelectorAll('.nav-version-option')
872+
allVersionOptions.forEach((option) => option.classList.remove('selected'))
856873
e.target.classList.add('selected')
874+
this.toggleNav(navItem, componentData, e.target.dataset.version)
875+
857876
const navVersionWrapper = document.querySelector(
858877
`[data-component="${navItem.getAttribute('data-component')}"] .nav-version-wrapper`
859878
)

src/partials/header/header-content-archive.hbs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div>
44
<div id="promotion_banner_agentforce" class="promotion-banner dark-blue-banner SL_swap">
55
<div class="promotion-banner-inside">
6-
<div class="field field--block-content-field-headline field--name-field-headline field--type-string field--label-hidden field__item">Hear from Salesforce leaders on how to create and deploy Agentforce agents.</div>
6+
<div class="field field--block-content-field-headline field--name-field-headline field--type-string field--label-hidden field__item">Learn how to put your digital team to work with MuleSoft for Agentforce.</div>
77
<div class="field field--block-content-field-subhead field--name-field-subhead field--type-text-long field--label-hidden field__item">
88
<style>
99
@media screen and (max-width: 992px) {
@@ -13,7 +13,7 @@
1313
}
1414
</style>
1515
</div>
16-
<div class="field-block-content--field-cta"> <a href="https://www.salesforce.com/form/events/webinars/form-rss/4783828" target="_blank" onclick="">Register now</a></div> <button class="cross" onclick="closePromoBanner()">+</button>
16+
<div class="field-block-content--field-cta"> <a href="https://www.salesforce.com/form/events/webinars/form-rss/4900882" target="_blank" onclick="">Register now</a></div> <button class="cross" onclick="closePromoBanner()">+</button>
1717
</div>
1818
</div>
1919
</div>
@@ -120,7 +120,7 @@
120120
<div class="full-left-menu">
121121
<div class="mega-menu-container-left">
122122
<div class="services-menu">
123-
<nav class="menu"> <span class="menu-label" role="heading">Training</span> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=Mulesoft" target="&rdquo;_blank&rdquo;" role="menuitem">Courses</a> <a class="services-title" href="https://trailhead.salesforce.com/en/credentials/administratoroverview/" target="&rdquo;_blank&rdquo;" role="menuitem">Certifications</a> <a class="services-title" href="https://trailhead.salesforce.com/help?article=Salesforce-Learning-Credits-FAQ-and-Redemption-Process" target="&rdquo;_blank&rdquo;" role="menuitem">Training credits</a> </nav>
123+
<nav class="menu"> <span class="menu-label" role="heading">Training</span> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=Mulesoft" target="&rdquo;_blank&rdquo;" role="menuitem">Courses</a> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=MuleSoft%E2%80%9D%20target=%E2%80%9D_blank%E2%80%9D%20role=" menuitem>Certifications</a> <a class="services-title" href="https://trailhead.salesforce.com/help?article=Salesforce-Learning-Credits-FAQ-and-Redemption-Process" target="&rdquo;_blank&rdquo;" role="menuitem">Training credits</a> </nav>
124124
<nav class="menu"> <span class="menu-label" role="heading">Customer success</span> <a class="services-title" href="https://www.mulesoft.com/support-and-services/consulting" role="menuitem">MuleSoft Catalyst</a> <a class="services-title" href="https://www.mulesoft.com/support-and-services/mobilize-consulting-solutions" role="menuitem">Business Value Services</a> </nav>
125125
<nav class="menu"> <span class="menu-label" role="heading">Support</span> <a class="services-title" href="https://help.mulesoft.com/s/" role="menuitem">Help Center</a> <a class="services-title" href="https://www.mulesoft.com/community" role="menuitem">Community Forums</a> <a class="services-title" href="https://help.mulesoft.com/s/resources" role="menuitem">Resources</a> </nav>
126126
</div>
@@ -351,7 +351,7 @@
351351
<div class="full-left-menu">
352352
<div class="mega-menu-container-left">
353353
<div class="services-menu">
354-
<nav class="menu"> <span class="menu-label" role="heading">Training</span> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=Mulesoft" target="&rdquo;_blank&rdquo;" role="menuitem">Courses</a> <a class="services-title" href="https://trailhead.salesforce.com/en/credentials/administratoroverview/" target="&rdquo;_blank&rdquo;" role="menuitem">Certifications</a> <a class="services-title" href="https://trailhead.salesforce.com/help?article=Salesforce-Learning-Credits-FAQ-and-Redemption-Process" target="&rdquo;_blank&rdquo;" role="menuitem">Training credits</a> </nav>
354+
<nav class="menu"> <span class="menu-label" role="heading">Training</span> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=Mulesoft" target="&rdquo;_blank&rdquo;" role="menuitem">Courses</a> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=MuleSoft%E2%80%9D%20target=%E2%80%9D_blank%E2%80%9D%20role=" menuitem>Certifications</a> <a class="services-title" href="https://trailhead.salesforce.com/help?article=Salesforce-Learning-Credits-FAQ-and-Redemption-Process" target="&rdquo;_blank&rdquo;" role="menuitem">Training credits</a> </nav>
355355
<nav class="menu"> <span class="menu-label" role="heading">Customer success</span> <a class="services-title" href="https://www.mulesoft.com/support-and-services/consulting" role="menuitem">MuleSoft Catalyst</a> <a class="services-title" href="https://www.mulesoft.com/support-and-services/mobilize-consulting-solutions" role="menuitem">Business Value Services</a> </nav>
356356
<nav class="menu"> <span class="menu-label" role="heading">Support</span> <a class="services-title" href="https://help.mulesoft.com/s/" role="menuitem">Help Center</a> <a class="services-title" href="https://www.mulesoft.com/community" role="menuitem">Community Forums</a> <a class="services-title" href="https://help.mulesoft.com/s/resources" role="menuitem">Resources</a> </nav>
357357
</div>

src/partials/header/header-content-en.hbs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div>
44
<div id="promotion_banner_agentforce" class="promotion-banner dark-blue-banner SL_swap">
55
<div class="promotion-banner-inside">
6-
<div class="field field--block-content-field-headline field--name-field-headline field--type-string field--label-hidden field__item">Hear from Salesforce leaders on how to create and deploy Agentforce agents.</div>
6+
<div class="field field--block-content-field-headline field--name-field-headline field--type-string field--label-hidden field__item">Learn how to put your digital team to work with MuleSoft for Agentforce.</div>
77
<div class="field field--block-content-field-subhead field--name-field-subhead field--type-text-long field--label-hidden field__item">
88
<style>
99
@media screen and (max-width: 992px) {
@@ -13,7 +13,7 @@
1313
}
1414
</style>
1515
</div>
16-
<div class="field-block-content--field-cta"> <a href="https://www.salesforce.com/form/events/webinars/form-rss/4783828" target="_blank" onclick="">Register now</a></div> <button class="cross" onclick="closePromoBanner()">+</button>
16+
<div class="field-block-content--field-cta"> <a href="https://www.salesforce.com/form/events/webinars/form-rss/4900882" target="_blank" onclick="">Register now</a></div> <button class="cross" onclick="closePromoBanner()">+</button>
1717
</div>
1818
</div>
1919
</div>
@@ -120,7 +120,7 @@
120120
<div class="full-left-menu">
121121
<div class="mega-menu-container-left">
122122
<div class="services-menu">
123-
<nav class="menu"> <span class="menu-label" role="heading">Training</span> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=Mulesoft" target="&rdquo;_blank&rdquo;" role="menuitem">Courses</a> <a class="services-title" href="https://trailhead.salesforce.com/en/credentials/administratoroverview/" target="&rdquo;_blank&rdquo;" role="menuitem">Certifications</a> <a class="services-title" href="https://trailhead.salesforce.com/help?article=Salesforce-Learning-Credits-FAQ-and-Redemption-Process" target="&rdquo;_blank&rdquo;" role="menuitem">Training credits</a> </nav>
123+
<nav class="menu"> <span class="menu-label" role="heading">Training</span> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=Mulesoft" target="&rdquo;_blank&rdquo;" role="menuitem">Courses</a> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=MuleSoft%E2%80%9D%20target=%E2%80%9D_blank%E2%80%9D%20role=" menuitem>Certifications</a> <a class="services-title" href="https://trailhead.salesforce.com/help?article=Salesforce-Learning-Credits-FAQ-and-Redemption-Process" target="&rdquo;_blank&rdquo;" role="menuitem">Training credits</a> </nav>
124124
<nav class="menu"> <span class="menu-label" role="heading">Customer success</span> <a class="services-title" href="https://www.mulesoft.com/support-and-services/consulting" role="menuitem">MuleSoft Catalyst</a> <a class="services-title" href="https://www.mulesoft.com/support-and-services/mobilize-consulting-solutions" role="menuitem">Business Value Services</a> </nav>
125125
<nav class="menu"> <span class="menu-label" role="heading">Support</span> <a class="services-title" href="https://help.mulesoft.com/s/" role="menuitem">Help Center</a> <a class="services-title" href="https://www.mulesoft.com/community" role="menuitem">Community Forums</a> <a class="services-title" href="https://help.mulesoft.com/s/resources" role="menuitem">Resources</a> </nav>
126126
</div>
@@ -367,7 +367,7 @@
367367
<div class="full-left-menu">
368368
<div class="mega-menu-container-left">
369369
<div class="services-menu">
370-
<nav class="menu"> <span class="menu-label" role="heading">Training</span> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=Mulesoft" target="&rdquo;_blank&rdquo;" role="menuitem">Courses</a> <a class="services-title" href="https://trailhead.salesforce.com/en/credentials/administratoroverview/" target="&rdquo;_blank&rdquo;" role="menuitem">Certifications</a> <a class="services-title" href="https://trailhead.salesforce.com/help?article=Salesforce-Learning-Credits-FAQ-and-Redemption-Process" target="&rdquo;_blank&rdquo;" role="menuitem">Training credits</a> </nav>
370+
<nav class="menu"> <span class="menu-label" role="heading">Training</span> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=Mulesoft" target="&rdquo;_blank&rdquo;" role="menuitem">Courses</a> <a class="services-title" href="https://trailheadacademy.salesforce.com/products/mulesoft#f-products=MuleSoft%E2%80%9D%20target=%E2%80%9D_blank%E2%80%9D%20role=" menuitem>Certifications</a> <a class="services-title" href="https://trailhead.salesforce.com/help?article=Salesforce-Learning-Credits-FAQ-and-Redemption-Process" target="&rdquo;_blank&rdquo;" role="menuitem">Training credits</a> </nav>
371371
<nav class="menu"> <span class="menu-label" role="heading">Customer success</span> <a class="services-title" href="https://www.mulesoft.com/support-and-services/consulting" role="menuitem">MuleSoft Catalyst</a> <a class="services-title" href="https://www.mulesoft.com/support-and-services/mobilize-consulting-solutions" role="menuitem">Business Value Services</a> </nav>
372372
<nav class="menu"> <span class="menu-label" role="heading">Support</span> <a class="services-title" href="https://help.mulesoft.com/s/" role="menuitem">Help Center</a> <a class="services-title" href="https://www.mulesoft.com/community" role="menuitem">Community Forums</a> <a class="services-title" href="https://help.mulesoft.com/s/resources" role="menuitem">Resources</a> </nav>
373373
</div>

0 commit comments

Comments
 (0)