Bug 601205 - Expose intrinsic invalid state to accessibility API; r=marcoz,surkov a=davidb

This commit is contained in:
David Bolter 2010-10-13 11:46:34 -04:00
parent 9a3958340e
commit df81141dd1
2 changed files with 26 additions and 0 deletions

View File

@ -688,6 +688,9 @@ nsAccessible::GetStateInternal(PRUint32 *aState, PRUint32 *aExtraState)
PRInt32 intrinsicState = mContent->IntrinsicState(); PRInt32 intrinsicState = mContent->IntrinsicState();
if (intrinsicState & NS_EVENT_STATE_INVALID)
*aState |= nsIAccessibleStates::STATE_INVALID;
if (intrinsicState & NS_EVENT_STATE_REQUIRED) if (intrinsicState & NS_EVENT_STATE_REQUIRED)
*aState |= nsIAccessibleStates::STATE_REQUIRED; *aState |= nsIAccessibleStates::STATE_REQUIRED;

View File

@ -46,6 +46,14 @@
testStates(invalid[i] + "2", 0, 0, STATE_INVALID); testStates(invalid[i] + "2", 0, 0, STATE_INVALID);
} }
// invalid/valid state
var invalid = ["maxlength","pattern","email","url"];
document.getElementById("maxlength").value = "i am too long";
for (i in invalid) {
testStates(invalid[i], STATE_INVALID);
testStates(invalid[i] + "2", 0, 0, STATE_INVALID);
}
SimpleTest.finish(); SimpleTest.finish();
} }
@ -75,6 +83,11 @@
title="Expose intrinsic invalid state to accessibility API"> title="Expose intrinsic invalid state to accessibility API">
Mozilla Bug 601205 Mozilla Bug 601205
</a> </a>
<a target="_blank"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=601205"
title="Expose intrinsic invalid state to accessibility API">
Mozilla Bug 601205
</a>
<p id="display"></p> <p id="display"></p>
<div id="content" style="display: none"></div> <div id="content" style="display: none"></div>
<pre id="test"> <pre id="test">
@ -121,5 +134,15 @@
<input id="url" type="url" value="foo"> <input id="url" type="url" value="foo">
<input id="url2" type="url" value="http://mozilla.org/"> <input id="url2" type="url" value="http://mozilla.org/">
<!-- invalid/valid -->
<input id="maxlength" maxlength="1">
<input id="maxlength2" maxlength="100" value="foo">
<input id="pattern" pattern="bar" value="foo">
<input id="pattern2" pattern="bar" value="bar">
<input id="email" type="email" value="foo">
<input id="email2" type="email" value="foo@bar.com">
<input id="url" type="url" value="foo">
<input id="url2" type="url" value="http://mozilla.org/">
</body> </body>
</html> </html>