From a70da16f6fb8c665f22b78b49a1dff998f1da8a7 Mon Sep 17 00:00:00 2001 From: Steven Bassett Date: Thu, 8 May 2014 20:19:12 -0700 Subject: 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 --- dist/js/bootstrap.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'dist') diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js index ea770c956..eb7f7ca0b 100644 --- a/dist/js/bootstrap.js +++ b/dist/js/bootstrap.js @@ -1233,7 +1233,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re 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') @@ -1356,6 +1360,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re 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) @@ -1447,6 +1453,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re 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) } -- cgit v1.2.3