diff options
author | Nathan Walters <nwalters512@gmail.com> | 2022-07-06 08:15:50 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-06 08:15:50 +0300 |
commit | 3f324eed02f24f817e7d75bc7d37c210644a06ee (patch) | |
tree | 838293607d651236c90bbb1a33f2566e01321b23 /js | |
parent | 7d0b224df49f75f9860ea1c3a6b54022a359c56f (diff) |
Handle non-empty whitespace `textContent` in Tooltip trigger (#36588)
Diffstat (limited to 'js')
-rw-r--r-- | js/src/tooltip.js | 2 | ||||
-rw-r--r-- | js/tests/unit/tooltip.spec.js | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/js/src/tooltip.js b/js/src/tooltip.js index 650bf2b092..f8d97f2408 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -518,7 +518,7 @@ class Tooltip extends BaseComponent { return } - if (!this._element.getAttribute('aria-label') && !this._element.textContent) { + if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) { this._element.setAttribute('aria-label', title) } diff --git a/js/tests/unit/tooltip.spec.js b/js/tests/unit/tooltip.spec.js index 1431d837dd..c8ab068187 100644 --- a/js/tests/unit/tooltip.spec.js +++ b/js/tests/unit/tooltip.spec.js @@ -1358,6 +1358,25 @@ describe('Tooltip', () => { }) }) + it('should add the aria-label attribute when element text content is a whitespace string', () => { + return new Promise(resolve => { + fixtureEl.innerHTML = '<a href="#" rel="tooltip" title="A tooltip"><span> </span></a>' + + const tooltipEl = fixtureEl.querySelector('a') + const tooltip = new Tooltip(tooltipEl) + + tooltipEl.addEventListener('shown.bs.tooltip', () => { + const tooltipShown = document.querySelector('.tooltip') + + expect(tooltipShown).not.toBeNull() + expect(tooltipEl.getAttribute('aria-label')).toEqual('A tooltip') + resolve() + }) + + tooltip.show() + }) + }) + it('should not add the aria-label attribute if the attribute already exists', () => { return new Promise(resolve => { fixtureEl.innerHTML = '<a href="#" rel="tooltip" aria-label="Different label" title="Another tooltip"></a>' |