aboutsummaryrefslogtreecommitdiff
path: root/js/tooltip.js
diff options
context:
space:
mode:
authorSteven Bassett <[email protected]>2014-05-08 20:19:12 -0700
committerSteven Bassett <[email protected]>2014-05-16 10:45:38 -0700
commita70da16f6fb8c665f22b78b49a1dff998f1da8a7 (patch)
tree1d6316e9dc74efc53646533c94e9dfc2d0f8720f /js/tooltip.js
parenta40ff40b8fb852af8034b215e2102ca8ff1618e0 (diff)
downloadbootstrap-a70da16f6fb8c665f22b78b49a1dff998f1da8a7.tar.xz
bootstrap-a70da16f6fb8c665f22b78b49a1dff998f1da8a7.zip
Adds aria described by to tooltip plugin for accessibility
Generates a unique id for tooltip and adds [aria-describedby] to the element it is called on. Resolves issue #13480 - set up test - linted the code styles - passed the tests - integrated feedback from @cvrebert
Diffstat (limited to 'js/tooltip.js')
-rw-r--r--js/tooltip.js12
1 files changed, 12 insertions, 0 deletions
diff --git a/js/tooltip.js b/js/tooltip.js
index d985f96e3..936424830 100644
--- a/js/tooltip.js
+++ b/js/tooltip.js
@@ -150,7 +150,11 @@
var $tip = this.tip()
+ var tipId = this.getUID(this.type)
+
this.setContent()
+ $tip.attr('id', tipId)
+ this.$element.attr('aria-describedby', tipId)
if (this.options.animation) $tip.addClass('fade')
@@ -273,6 +277,8 @@
var $tip = this.tip()
var e = $.Event('hide.bs.' + this.type)
+ this.$element.removeAttr('aria-describedby')
+
function complete() {
if (that.hoverState != 'in') $tip.detach()
that.$element.trigger('hidden.bs.' + that.type)
@@ -364,6 +370,12 @@
return title
}
+ Tooltip.prototype.getUID = function (prefix) {
+ do prefix += ~~(Math.random() * 1000000)
+ while (document.getElementById(prefix))
+ return prefix
+ }
+
Tooltip.prototype.tip = function () {
return this.$tip = this.$tip || $(this.options.template)
}