From 9988d76c3ff664636660400586e7677a1fcc75ad Mon Sep 17 00:00:00 2001 From: Cory LaViska Date: Thu, 30 Dec 2021 12:14:39 -0500 Subject: [PATCH] fix ids --- docs/resources/changelog.md | 2 ++ src/components/details/details.ts | 16 +++------------- src/components/dialog/dialog.ts | 7 ++----- src/components/drawer/drawer.ts | 9 +++------ src/components/dropdown/dropdown.ts | 7 ++----- src/components/tooltip/tooltip.styles.ts | 4 ++++ src/components/tooltip/tooltip.ts | 21 +++++---------------- 7 files changed, 21 insertions(+), 45 deletions(-) diff --git a/docs/resources/changelog.md b/docs/resources/changelog.md index f31bc22f7..e2ea2dd27 100644 --- a/docs/resources/changelog.md +++ b/docs/resources/changelog.md @@ -10,7 +10,9 @@ _During the beta period, these restrictions may be relaxed in the event of a mis - Added `role="status"` to `` - Fixed broken spinner animation in Safari [#633](https://github.com/shoelace-style/shoelace/issues/633) +- Fixed an a11y bug in `` where `aria-describedby` referenced an id in the shadow root - Improved `` track color when used on various backgrounds +- Refactored internal id usage in ``, ``, ``, and `` - Removed `position: relative` from the common component stylesheet ## 2.0.0-beta.63 diff --git a/src/components/details/details.ts b/src/components/details/details.ts index 2ad02ce9d..d23790821 100644 --- a/src/components/details/details.ts +++ b/src/components/details/details.ts @@ -10,8 +10,6 @@ import styles from './details.styles'; import '../icon/icon'; -let id = 0; - /** * @since 2.0 * @status stable @@ -43,8 +41,6 @@ export default class SlDetails extends LitElement { @query('.details__header') header: HTMLElement; @query('.details__body') body: HTMLElement; - private componentId = `details-${++id}`; - /** Indicates whether or not the details is open. You can use this in lieu of the show/hide methods. */ @property({ type: Boolean, reflect: true }) open = false; @@ -144,11 +140,11 @@ export default class SlDetails extends LitElement { >
-
+
diff --git a/src/components/dialog/dialog.ts b/src/components/dialog/dialog.ts index 4393d62ad..506b36776 100644 --- a/src/components/dialog/dialog.ts +++ b/src/components/dialog/dialog.ts @@ -17,8 +17,6 @@ import '../icon-button/icon-button'; const hasPreventScroll = isPreventScrollSupported(); -let id = 0; - /** * @since 2.0 * @status stable @@ -67,7 +65,6 @@ export default class SlDialog extends LitElement { @query('.dialog__panel') panel: HTMLElement; @query('.dialog__overlay') overlay: HTMLElement; - private componentId = `dialog-${++id}`; private modal: Modal; private originalTrigger: HTMLElement | null; @@ -235,13 +232,13 @@ export default class SlDialog extends LitElement { aria-modal="true" aria-hidden=${this.open ? 'false' : 'true'} aria-label=${ifDefined(this.noHeader ? this.label : undefined)} - aria-labelledby=${ifDefined(!this.noHeader ? `${this.componentId}-title` : undefined)} + aria-labelledby=${ifDefined(!this.noHeader ? 'title' : undefined)} tabindex="0" > ${!this.noHeader ? html`
- + ${this.label || String.fromCharCode(65279)} ${!this.noHeader ? html`
- - + + ${this.label || String.fromCharCode(65279)}
diff --git a/src/components/tooltip/tooltip.styles.ts b/src/components/tooltip/tooltip.styles.ts index c7010861b..a01d5bd7e 100644 --- a/src/components/tooltip/tooltip.styles.ts +++ b/src/components/tooltip/tooltip.styles.ts @@ -12,6 +12,10 @@ export default css` display: contents; } + .tooltip-content { + display: contents; + } + .tooltip-positioner { position: absolute; z-index: var(--sl-z-index-tooltip); diff --git a/src/components/tooltip/tooltip.ts b/src/components/tooltip/tooltip.ts index 8b952d622..e964553a8 100644 --- a/src/components/tooltip/tooltip.ts +++ b/src/components/tooltip/tooltip.ts @@ -38,7 +38,6 @@ export default class SlTooltip extends LitElement { @query('.tooltip-positioner') positioner: HTMLElement; @query('.tooltip') tooltip: HTMLElement; - private componentId = `tooltip-${++id}`; private target: HTMLElement; private popover: PopperInstance; private hoverTimeout: any; @@ -283,18 +282,6 @@ export default class SlTooltip extends LitElement { } } - handleSlotChange() { - const oldTarget = this.target; - const newTarget = this.getTarget(); - - if (newTarget !== oldTarget) { - if (oldTarget) { - oldTarget.removeAttribute('aria-describedby'); - } - newTarget.setAttribute('aria-describedby', this.componentId); - } - } - hasTrigger(triggerType: string) { const triggers = this.trigger.split(' '); return triggers.includes(triggerType); @@ -325,12 +312,14 @@ export default class SlTooltip extends LitElement { render() { return html` - +
+ +
`;