diff options
| author | Jacob <[email protected]> | 2014-07-21 22:48:08 -0700 |
|---|---|---|
| committer | Jacob <[email protected]> | 2014-07-21 22:48:08 -0700 |
| commit | f88e6ba2a3fea7348f9b0ff4118ccd18d8571b7a (patch) | |
| tree | bc97a0cadbe6baa255d9edb83e25c7b99a195c09 | |
| parent | 97cb2803d7698bdafc57820017ab8550b031d121 (diff) | |
| parent | 4775c9296ab95b49fc1e4b0f86d1db26176013ef (diff) | |
| download | bootstrap-f88e6ba2a3fea7348f9b0ff4118ccd18d8571b7a.tar.xz bootstrap-f88e6ba2a3fea7348f9b0ff4118ccd18d8571b7a.zip | |
Merge pull request #14208 from twbs/mckramer-dropdown-aria
Mckramer dropdown aria
| -rw-r--r-- | docs/_includes/js/dropdowns.html | 16 | ||||
| -rw-r--r-- | js/dropdown.js | 12 |
2 files changed, 18 insertions, 10 deletions
diff --git a/docs/_includes/js/dropdowns.html b/docs/_includes/js/dropdowns.html index 2cbbf85e1..2260bd38c 100644 --- a/docs/_includes/js/dropdowns.html +++ b/docs/_includes/js/dropdowns.html @@ -20,7 +20,7 @@ <div class="collapse navbar-collapse bs-example-js-navbar-collapse"> <ul class="nav navbar-nav"> <li class="dropdown"> - <button id="drop1" type="button" class="dropdown-toggle" data-toggle="dropdown"> + <button id="drop1" type="button" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown <span class="caret"></span> </button> @@ -33,7 +33,7 @@ </ul> </li> <li class="dropdown"> - <button id="drop2" type="button" class="dropdown-toggle" data-toggle="dropdown"> + <button id="drop2" type="button" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown 2 <span class="caret"></span> </button> @@ -48,7 +48,7 @@ </ul> <ul class="nav navbar-nav navbar-right"> <li id="fat-menu" class="dropdown"> - <button id="drop3" type="button" class="dropdown-toggle" data-toggle="dropdown"> + <button id="drop3" type="button" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown 3 <span class="caret"></span> </button> @@ -71,7 +71,7 @@ <ul class="nav nav-pills" role="tablist"> <li role="presentation" class="active"><a href="#">Regular link</a></li> <li role="presentation" class="dropdown"> - <button id="drop4" type="button" data-toggle="dropdown"> + <button id="drop4" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown <span class="caret"></span> </button> @@ -84,7 +84,7 @@ </ul> </li> <li role="presentation" class="dropdown"> - <button id="drop5" type="button" data-toggle="dropdown"> + <button id="drop5" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown 2 <span class="caret"></span> </button> @@ -97,7 +97,7 @@ </ul> </li> <li role="presentation" class="dropdown"> - <button id="drop6" type="button" data-toggle="dropdown"> + <button id="drop6" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown 3 <span class="caret"></span> </button> @@ -122,7 +122,7 @@ <p>Add <code>data-toggle="dropdown"</code> to a link or button to toggle a dropdown.</p> {% highlight html %} <div class="dropdown"> - <button id="dLabel" type="button" data-toggle="dropdown"> + <button id="dLabel" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown trigger <span class="caret"></span> </button> @@ -134,7 +134,7 @@ <p>To keep URLs intact with link buttons, use the <code>data-target</code> attribute instead of <code>href="#"</code>.</p> {% highlight html %} <div class="dropdown"> - <a id="dLabel" data-target="#" href="http://example.com" type="button" data-toggle="dropdown"> + <a id="dLabel" data-target="#" href="http://example.com" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown trigger <span class="caret"></span> </a> diff --git a/js/dropdown.js b/js/dropdown.js index 88f118c2d..756fc21f5 100644 --- a/js/dropdown.js +++ b/js/dropdown.js @@ -42,7 +42,9 @@ if (e.isDefaultPrevented()) return - $this.trigger('focus') + $this + .trigger('focus') + .attr('aria-expanded', 'true') $parent .toggleClass('open') @@ -88,11 +90,17 @@ if (e && e.which === 3) return $(backdrop).remove() $(toggle).each(function () { - var $parent = getParent($(this)) + var $this = $(this) + var $parent = getParent($this) var relatedTarget = { relatedTarget: this } + if (!$parent.hasClass('open')) return + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) + if (e.isDefaultPrevented()) return + + $this.attr('aria-expanded', 'false') $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) }) } |
