diff --git a/src/ngAria/aria.js b/src/ngAria/aria.js index f8737ea12fc8..1aef6293d9ac 100644 --- a/src/ngAria/aria.js +++ b/src/ngAria/aria.js @@ -238,5 +238,16 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) { .directive('ngDisabled', ['$aria', function($aria) { return $aria.$$watchExpr('ngDisabled', 'aria-disabled'); }]) +.directive('ngMessages', function() { + return { + restrict: 'A', + require: '?ngMessages', + link: function(scope, elem, attr, ngMessages) { + if (!elem.attr('aria-live')) { + elem.attr('aria-live', 'assertive'); + } + } + }; +}) .directive('ngClick', ngAriaTabindex) .directive('ngDblclick', ngAriaTabindex); diff --git a/test/ngAria/ariaSpec.js b/test/ngAria/ariaSpec.js index 7c91afea58d1..734472a102a8 100644 --- a/test/ngAria/ariaSpec.js +++ b/test/ngAria/ariaSpec.js @@ -400,6 +400,16 @@ describe('$aria', function() { }); }); + describe('announcing ngMessages', function() { + beforeEach(injectScopeAndCompiler); + + it('should attach aria-live', function() { + var element = [ + $compile('