From b0372bb6588ab12c398e5dbf39950dfd3269575e Mon Sep 17 00:00:00 2001 From: Matty Williams Date: Wed, 29 May 2019 21:48:59 +0300 Subject: [PATCH] Accessibility update for tooltip.js Update to the tooltip.js to add an aria-label attribute that contains the original title of the element, but only if the element doesn't have an existing aria-label attribute. This is to address cases where screen readers are not capturing the aria-describedby attribute that is added when the tooltip is triggered. This should also avoid a race condition between the screen reader and the appearance of the tooltip. --- js/src/tooltip.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/js/src/tooltip.js b/js/src/tooltip.js index 797afb134f..936a2a66f2 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -584,6 +584,10 @@ class Tooltip extends BaseComponent { if (title || originalTitleType !== 'string') { this._element.setAttribute('data-bs-original-title', title || '') + if (!this._element.getAttribute('aria-label') && !this._element.textContent) { + this._element.setAttribute('aria-label', this._element.getAttribute('title') || '') + } + this._element.setAttribute('title', '') } }