vendor/assets/javascripts/angular-aria.js in rails-angularjs-1.4.1 vs vendor/assets/javascripts/angular-aria.js in rails-angularjs-1.4.2
- old
+ new
@@ -1,7 +1,7 @@
/**
- * @license AngularJS v1.4.1
+ * @license AngularJS v1.4.2
* (c) 2010-2015 Google, Inc. http://angularjs.org
* License: MIT
*/
(function(window, angular, undefined) {'use strict';
@@ -86,11 +86,12 @@
ariaRequired: true,
ariaInvalid: true,
ariaMultiline: true,
ariaValue: true,
tabindex: true,
- bindKeypress: true
+ bindKeypress: true,
+ bindRoleForClick: true
};
/**
* @ngdoc method
* @name $ariaProvider#config
@@ -105,10 +106,12 @@
* - **ariaMultiline** – `{boolean}` – Enables/disables aria-multiline tags
* - **ariaValue** – `{boolean}` – Enables/disables aria-valuemin, aria-valuemax and aria-valuenow tags
* - **tabindex** – `{boolean}` – Enables/disables tabindex tags
* - **bindKeypress** – `{boolean}` – Enables/disables keypress event binding on `<div>` and
* `<li>` elements with ng-click
+ * - **bindRoleForClick** – `{boolean}` – Adds role=button to non-interactive elements like `div`
+ * using ng-click, making them more accessible to users of assistive technologies
*
* @description
* Enables/disables various ARIA attributes
*/
this.config = function(newConfig) {
@@ -349,10 +352,13 @@
function isNodeOneOf(elem, nodeTypeArray) {
if (nodeTypeArray.indexOf(elem[0].nodeName) !== -1) {
return true;
}
}
- if (!elem.attr('role') && !isNodeOneOf(elem, nodeBlackList)) {
+
+ if ($aria.config('bindRoleForClick')
+ && !elem.attr('role')
+ && !isNodeOneOf(elem, nodeBlackList)) {
elem.attr('role', 'button');
}
if ($aria.config('tabindex') && !elem.attr('tabindex')) {
elem.attr('tabindex', 0);