Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorGeoSot <geo.sotis@gmail.com>2022-09-20 17:20:47 +0300
committerGitHub <noreply@github.com>2022-09-20 17:20:47 +0300
commit1510c25e9be4d8f7f2ba23622bfdfd9afebb6598 (patch)
tree4931d3d6150218179943387823fc8aad370030f8 /js
parent2be9cd59bae8c864f6d2cfb03c535e96f00160ca (diff)
Drop tabs auto-focus (#37146)
* fix: drop tabs auto-focus
Diffstat (limited to 'js')
-rw-r--r--js/src/tab.js1
-rw-r--r--js/tests/unit/tab.spec.js31
2 files changed, 29 insertions, 3 deletions
diff --git a/js/src/tab.js b/js/src/tab.js
index 91187ae9f0..31dcec4a4b 100644
--- a/js/src/tab.js
+++ b/js/src/tab.js
@@ -115,7 +115,6 @@ class Tab extends BaseComponent {
return
}
- element.focus()
element.removeAttribute('tabindex')
element.setAttribute('aria-selected', true)
this._toggleDropDown(element, true)
diff --git a/js/tests/unit/tab.spec.js b/js/tests/unit/tab.spec.js
index f1c1d695c3..15d5811736 100644
--- a/js/tests/unit/tab.spec.js
+++ b/js/tests/unit/tab.spec.js
@@ -36,9 +36,7 @@ describe('Tab', () => {
expect(tabBySelector._element).toEqual(tabEl)
expect(tabByElement._element).toEqual(tabEl)
})
- })
- describe('constructor', () => {
it('Do not Throw exception if not parent', () => {
fixtureEl.innerHTML = [
fixtureEl.innerHTML = '<div class=""><div class="nav-link"></div></div>'
@@ -383,6 +381,35 @@ describe('Tab', () => {
btnCloseEl.click()
})
})
+
+ it('should not focus on opened tab', () => {
+ return new Promise(resolve => {
+ fixtureEl.innerHTML = [
+ '<ul class="nav" role="tablist">',
+ ' <li><button type="button" id="home" data-bs-target="#home" role="tab">Home</button></li>',
+ ' <li><button type="button" id="triggerProfile" data-bs-target="#profile" role="tab">Profile</button></li>',
+ '</ul>',
+ '<ul>',
+ ' <li id="home" role="tabpanel"></li>',
+ ' <li id="profile" role="tabpanel"></li>',
+ '</ul>'
+ ].join('')
+
+ const firstTab = fixtureEl.querySelector('#home')
+ firstTab.focus()
+
+ const profileTriggerEl = fixtureEl.querySelector('#triggerProfile')
+ const tab = new Tab(profileTriggerEl)
+
+ profileTriggerEl.addEventListener('shown.bs.tab', () => {
+ expect(document.activeElement).toBe(firstTab)
+ expect(document.activeElement).not.toBe(profileTriggerEl)
+ resolve()
+ })
+
+ tab.show()
+ })
+ })
})
describe('dispose', () => {