Skip to content

Commit

Permalink
fix(storefront): BCTHEME-282 Fix aria-labels for collapsibleFactory e…
Browse files Browse the repository at this point in the history
…lements
  • Loading branch information
BC-tymurbiedukhin committed Oct 9, 2020
1 parent c8832ca commit 713420f
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions assets/js/theme/common/collapsible.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ export class Collapsible {
// Assign DOM attributes
this.$target.attr('aria-hidden', this.isCollapsed);
this.$toggle
.attr('aria-label', $toggle.text().trim())
.attr('aria-label', this._getToggleAriaLabelText($toggle))
.attr('aria-controls', $target.attr('id'))
.attr('aria-expanded', this.isOpen);

Expand Down Expand Up @@ -112,6 +112,13 @@ export class Collapsible {
return this._disabled;
}

_getToggleAriaLabelText($toggle) {
const $textToggleChildren = $toggle.children().filter((__, child) => $(child).text().trim());
const $ariaLabelTarget = $textToggleChildren.length ? $textToggleChildren.first() : $toggle;

return $($ariaLabelTarget).text().trim();
}

open({ notify = true } = {}) {
this.$toggle
.addClass(this.openClassName)
Expand Down Expand Up @@ -202,12 +209,12 @@ export class Collapsible {
* Convenience method for constructing Collapsible instance
*
* @param {string} [selector]
* @param {Object} [options]
* @param {Object} [options.$context]
* @param {Object} [options.disabledBreakpoint]
* @param {Object} [options.disabledState]
* @param {Object} [options.enabledState]
* @param {Object} [options.openClassName]
* @param {Object} [overrideOptions]
* @param {Object} [overrideOptions.$context]
* @param {Object} [overrideOptions.disabledBreakpoint]
* @param {Object} [overrideOptions.disabledState]
* @param {Object} [overrideOptions.enabledState]
* @param {Object} [overrideOptions.openClassName]
* @return {Array} array of Collapsible instances
*
* @example
Expand Down

0 comments on commit 713420f

Please sign in to comment.