diff --git a/src/ngAria/aria.js b/src/ngAria/aria.js index 6b97daa3d1c8..53c453335f25 100644 --- a/src/ngAria/aria.js +++ b/src/ngAria/aria.js @@ -225,7 +225,7 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) { .directive('ngModel', ['$aria', function($aria) { function shouldAttachAttr(attr, normalizedAttr, elem, allowBlacklistEls) { - return $aria.config(normalizedAttr) && !elem.attr(attr) && (allowBlacklistEls || !isNodeOneOf(elem, nodeBlackList)); + return $aria.config(normalizedAttr) && !elem.attr(attr) && (allowBlacklistEls || !isNodeOneOf(elem, nodeBlackList)) && elem.attr('type') !== 'hidden'; } function shouldAttachRole(role, elem) { diff --git a/test/ngAria/ariaSpec.js b/test/ngAria/ariaSpec.js index 9f7edaa2e9c0..179e88050f42 100644 --- a/test/ngAria/ariaSpec.js +++ b/test/ngAria/ariaSpec.js @@ -420,6 +420,11 @@ describe('$aria', function() { scope.$apply('txtInput=\'LTten\''); expect(element.attr('aria-invalid')).toBe('userSetValue'); }); + + it('should not attach if input is type="hidden"', function() { + compileElement(''); + expect(element.attr('aria-invalid')).toBeUndefined(); + }); }); describe('aria-invalid when disabled', function() {