Skip to content

Commit

Permalink
Merge pull request #14208 from twbs/mckramer-dropdown-aria
Browse files Browse the repository at this point in the history
Mckramer dropdown aria
  • Loading branch information
fat committed Jul 22, 2014
2 parents 97cb280 + 4775c92 commit f88e6ba
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
16 changes: 8 additions & 8 deletions docs/_includes/js/dropdowns.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ <h3>Within a navbar</h3>
<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>
Expand All @@ -33,7 +33,7 @@ <h3>Within a navbar</h3>
</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>
Expand All @@ -48,7 +48,7 @@ <h3>Within a navbar</h3>
</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>
Expand All @@ -71,7 +71,7 @@ <h3>Within pills</h3>
<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>
Expand All @@ -84,7 +84,7 @@ <h3>Within pills</h3>
</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>
Expand All @@ -97,7 +97,7 @@ <h3>Within pills</h3>
</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>
Expand All @@ -122,7 +122,7 @@ <h3>Via data attributes</h3>
<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>
Expand All @@ -134,7 +134,7 @@ <h3>Via data attributes</h3>
<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>
Expand Down
12 changes: 10 additions & 2 deletions js/dropdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@

if (e.isDefaultPrevented()) return

$this.trigger('focus')
$this
.trigger('focus')
.attr('aria-expanded', 'true')

$parent
.toggleClass('open')
Expand Down Expand Up @@ -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)
})
}
Expand Down

0 comments on commit f88e6ba

Please sign in to comment.