Commit bb9bf773 authored by Joel Einbinder's avatar Joel Einbinder Committed by Commit Bot

DevTools: Expose more properties through the accessibility protocol

This adds the new properties:
	invisible
	editable
	focusable
	focused
	settable

Bug: 887173
Change-Id: Iaa9dc346d10648ada9d16c6a3568f83fdd83f397
Reviewed-on: https://chromium-review.googlesource.com/c/1244548Reviewed-by: default avatarDmitry Gozman <dgozman@chromium.org>
Reviewed-by: default avatarAlice Boxhall <aboxhall@chromium.org>
Commit-Queue: Joel Einbinder <einbinder@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599769}
parent 9d99993b
Tests that writing an ARIA attribute causes the accessibility node to be updated. Tests that writing an ARIA attribute causes the accessibility node to be updated.
=== Before attribute modification === === Before attribute modification ===
checkbox "ARIA checkbox" invalid="false" checked="true" checkbox "ARIA checkbox" invalid="false" focusable="true" checked="true"
=== After attribute modification === === After attribute modification ===
checkbox "ARIA checkbox" invalid="false" checked="false" checkbox "ARIA checkbox" invalid="false" focusable="true" checked="false"
=== After role modification === === After role modification ===
radio "ARIA checkbox" invalid="false" checked="false" radio "ARIA checkbox" invalid="false" focusable="true" checked="false"
...@@ -44,6 +44,27 @@ Tests ARIA 1.1 accessibility markup. ...@@ -44,6 +44,27 @@ Tests ARIA 1.1 accessibility markup.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -180,6 +201,13 @@ Tests ARIA 1.1 accessibility markup. ...@@ -180,6 +201,13 @@ Tests ARIA 1.1 accessibility markup.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "keyshortcuts", "name": "keyshortcuts",
"value": { "value": {
...@@ -230,6 +258,13 @@ Tests ARIA 1.1 accessibility markup. ...@@ -230,6 +258,13 @@ Tests ARIA 1.1 accessibility markup.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "checked", "name": "checked",
"value": { "value": {
......
...@@ -42,6 +42,13 @@ Tests relationship accessibility values. ...@@ -42,6 +42,13 @@ Tests relationship accessibility values.
] ]
}, },
"properties": [ "properties": [
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "required", "name": "required",
"value": { "value": {
...@@ -120,6 +127,13 @@ Tests relationship accessibility values. ...@@ -120,6 +127,13 @@ Tests relationship accessibility values.
] ]
}, },
"properties": [ "properties": [
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "required", "name": "required",
"value": { "value": {
......
...@@ -384,6 +384,13 @@ WebArea ...@@ -384,6 +384,13 @@ WebArea
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "expanded", "name": "expanded",
"value": { "value": {
...@@ -430,6 +437,13 @@ WebArea ...@@ -430,6 +437,13 @@ WebArea
] ]
}, },
"properties": [ "properties": [
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "selected", "name": "selected",
"value": { "value": {
......
...@@ -38,6 +38,13 @@ Tests name sources in buttons. ...@@ -38,6 +38,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button1" "domNode": "button#button1"
...@@ -86,6 +93,13 @@ Tests name sources in buttons. ...@@ -86,6 +93,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button2" "domNode": "button#button2"
...@@ -129,6 +143,13 @@ Tests name sources in buttons. ...@@ -129,6 +143,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button3" "domNode": "button#button3"
...@@ -177,6 +198,13 @@ Tests name sources in buttons. ...@@ -177,6 +198,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button4" "domNode": "button#button4"
...@@ -225,6 +253,13 @@ Tests name sources in buttons. ...@@ -225,6 +253,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button5" "domNode": "button#button5"
...@@ -273,6 +308,13 @@ Tests name sources in buttons. ...@@ -273,6 +308,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button6" "domNode": "button#button6"
...@@ -320,6 +362,13 @@ Tests name sources in buttons. ...@@ -320,6 +362,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button7" "domNode": "button#button7"
...@@ -376,6 +425,13 @@ Tests name sources in buttons. ...@@ -376,6 +425,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button8" "domNode": "button#button8"
...@@ -423,6 +479,13 @@ Tests name sources in buttons. ...@@ -423,6 +479,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button9" "domNode": "button#button9"
...@@ -479,6 +542,13 @@ Tests name sources in buttons. ...@@ -479,6 +542,13 @@ Tests name sources in buttons.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#button10" "domNode": "button#button10"
...@@ -542,6 +612,13 @@ Tests name sources in buttons. ...@@ -542,6 +612,13 @@ Tests name sources in buttons.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
......
...@@ -586,7 +586,15 @@ Tests name sources in images and figures. ...@@ -586,7 +586,15 @@ Tests name sources in images and figures.
} }
] ]
}, },
"properties": [], "properties": [
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
}
],
"domNode": "div#link1" "domNode": "div#link1"
} }
{ {
......
...@@ -42,6 +42,13 @@ Tests name sources in input[type=button]. ...@@ -42,6 +42,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#button1" "domNode": "input#button1"
...@@ -99,6 +106,13 @@ Tests name sources in input[type=button]. ...@@ -99,6 +106,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#button2" "domNode": "input#button2"
...@@ -164,6 +178,13 @@ Tests name sources in input[type=button]. ...@@ -164,6 +178,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#button3" "domNode": "input#button3"
...@@ -215,6 +236,13 @@ Tests name sources in input[type=button]. ...@@ -215,6 +236,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#button4" "domNode": "input#button4"
...@@ -279,6 +307,13 @@ Tests name sources in input[type=button]. ...@@ -279,6 +307,13 @@ Tests name sources in input[type=button].
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -354,6 +389,13 @@ Tests name sources in input[type=button]. ...@@ -354,6 +389,13 @@ Tests name sources in input[type=button].
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -441,6 +483,13 @@ Tests name sources in input[type=button]. ...@@ -441,6 +483,13 @@ Tests name sources in input[type=button].
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -536,6 +585,13 @@ Tests name sources in input[type=button]. ...@@ -536,6 +585,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#button8" "domNode": "input#button8"
...@@ -637,6 +693,13 @@ Tests name sources in input[type=button]. ...@@ -637,6 +693,13 @@ Tests name sources in input[type=button].
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -701,6 +764,13 @@ Tests name sources in input[type=button]. ...@@ -701,6 +764,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#submit1" "domNode": "input#submit1"
...@@ -758,6 +828,13 @@ Tests name sources in input[type=button]. ...@@ -758,6 +828,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#submit2" "domNode": "input#submit2"
...@@ -818,6 +895,13 @@ Tests name sources in input[type=button]. ...@@ -818,6 +895,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#submit3" "domNode": "input#submit3"
...@@ -870,6 +954,13 @@ Tests name sources in input[type=button]. ...@@ -870,6 +954,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#reset1" "domNode": "input#reset1"
...@@ -943,6 +1034,13 @@ Tests name sources in input[type=button]. ...@@ -943,6 +1034,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#image-input1" "domNode": "input#image-input1"
...@@ -1022,6 +1120,13 @@ Tests name sources in input[type=button]. ...@@ -1022,6 +1120,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#image-input2" "domNode": "input#image-input2"
...@@ -1106,6 +1211,13 @@ Tests name sources in input[type=button]. ...@@ -1106,6 +1211,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#image-input3" "domNode": "input#image-input3"
...@@ -1194,6 +1306,13 @@ Tests name sources in input[type=button]. ...@@ -1194,6 +1306,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#image-input4" "domNode": "input#image-input4"
...@@ -1280,6 +1399,13 @@ Tests name sources in input[type=button]. ...@@ -1280,6 +1399,13 @@ Tests name sources in input[type=button].
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "input#image-input5" "domNode": "input#image-input5"
......
...@@ -44,6 +44,27 @@ Tests name sources in inputs. ...@@ -44,6 +44,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -117,6 +138,27 @@ Tests name sources in inputs. ...@@ -117,6 +138,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -212,6 +254,27 @@ Tests name sources in inputs. ...@@ -212,6 +254,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -321,6 +384,27 @@ Tests name sources in inputs. ...@@ -321,6 +384,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -451,6 +535,27 @@ Tests name sources in inputs. ...@@ -451,6 +535,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -585,6 +690,27 @@ Tests name sources in inputs. ...@@ -585,6 +690,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -691,6 +817,27 @@ Tests name sources in inputs. ...@@ -691,6 +817,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -772,6 +919,27 @@ Tests name sources in inputs. ...@@ -772,6 +919,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -885,6 +1053,27 @@ Tests name sources in inputs. ...@@ -885,6 +1053,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -1010,6 +1199,27 @@ Tests name sources in inputs. ...@@ -1010,6 +1199,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -1111,6 +1321,27 @@ Tests name sources in inputs. ...@@ -1111,6 +1321,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -1213,6 +1444,27 @@ Tests name sources in inputs. ...@@ -1213,6 +1444,27 @@ Tests name sources in inputs.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
......
...@@ -71,6 +71,13 @@ Tests name sources when used with aria-labelledby. ...@@ -71,6 +71,13 @@ Tests name sources when used with aria-labelledby.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#self" "domNode": "button#self"
...@@ -138,6 +145,13 @@ Tests name sources when used with aria-labelledby. ...@@ -138,6 +145,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -217,6 +231,13 @@ Tests name sources when used with aria-labelledby. ...@@ -217,6 +231,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -301,6 +322,13 @@ Tests name sources when used with aria-labelledby. ...@@ -301,6 +322,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -385,6 +413,13 @@ Tests name sources when used with aria-labelledby. ...@@ -385,6 +413,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -450,6 +485,13 @@ Tests name sources when used with aria-labelledby. ...@@ -450,6 +485,13 @@ Tests name sources when used with aria-labelledby.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#labelledby5" "domNode": "button#labelledby5"
...@@ -517,6 +559,13 @@ Tests name sources when used with aria-labelledby. ...@@ -517,6 +559,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -596,6 +645,13 @@ Tests name sources when used with aria-labelledby. ...@@ -596,6 +645,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -675,6 +731,13 @@ Tests name sources when used with aria-labelledby. ...@@ -675,6 +731,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -745,6 +808,13 @@ Tests name sources when used with aria-labelledby. ...@@ -745,6 +808,13 @@ Tests name sources when used with aria-labelledby.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#labelOnly" "domNode": "button#labelOnly"
...@@ -793,6 +863,13 @@ Tests name sources when used with aria-labelledby. ...@@ -793,6 +863,13 @@ Tests name sources when used with aria-labelledby.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#emptyLabel1" "domNode": "button#emptyLabel1"
...@@ -841,6 +918,13 @@ Tests name sources when used with aria-labelledby. ...@@ -841,6 +918,13 @@ Tests name sources when used with aria-labelledby.
"type": "token", "type": "token",
"value": "false" "value": "false"
} }
},
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
} }
], ],
"domNode": "button#emptyLabel2" "domNode": "button#emptyLabel2"
...@@ -916,6 +1000,13 @@ Tests name sources when used with aria-labelledby. ...@@ -916,6 +1000,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -995,6 +1086,13 @@ Tests name sources when used with aria-labelledby. ...@@ -995,6 +1086,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -1074,6 +1172,13 @@ Tests name sources when used with aria-labelledby. ...@@ -1074,6 +1172,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -1153,6 +1258,13 @@ Tests name sources when used with aria-labelledby. ...@@ -1153,6 +1258,13 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -1234,6 +1346,27 @@ Tests name sources when used with aria-labelledby. ...@@ -1234,6 +1346,27 @@ Tests name sources when used with aria-labelledby.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
......
...@@ -32,6 +32,13 @@ Tests name sources in details and summary. ...@@ -32,6 +32,13 @@ Tests name sources in details and summary.
] ]
}, },
"properties": [ "properties": [
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "expanded", "name": "expanded",
"value": { "value": {
...@@ -84,6 +91,13 @@ Tests name sources in details and summary. ...@@ -84,6 +91,13 @@ Tests name sources in details and summary.
"value": "summary3-title" "value": "summary3-title"
}, },
"properties": [ "properties": [
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "expanded", "name": "expanded",
"value": { "value": {
...@@ -145,6 +159,13 @@ Tests name sources in details and summary. ...@@ -145,6 +159,13 @@ Tests name sources in details and summary.
"value": "summary4-contents" "value": "summary4-contents"
}, },
"properties": [ "properties": [
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "expanded", "name": "expanded",
"value": { "value": {
...@@ -222,6 +243,13 @@ Tests name sources in details and summary. ...@@ -222,6 +243,13 @@ Tests name sources in details and summary.
"value": "summary5-contents" "value": "summary5-contents"
}, },
"properties": [ "properties": [
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "expanded", "name": "expanded",
"value": { "value": {
......
...@@ -32,7 +32,15 @@ Tests name sources in invisible nodes. ...@@ -32,7 +32,15 @@ Tests name sources in invisible nodes.
} }
] ]
}, },
"properties": [], "properties": [
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
}
],
"domNode": "div#link1" "domNode": "div#link1"
} }
{ {
...@@ -100,6 +108,27 @@ Tests name sources in invisible nodes. ...@@ -100,6 +108,27 @@ Tests name sources in invisible nodes.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -232,6 +261,27 @@ Tests name sources in invisible nodes. ...@@ -232,6 +261,27 @@ Tests name sources in invisible nodes.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -364,6 +414,27 @@ Tests name sources in invisible nodes. ...@@ -364,6 +414,27 @@ Tests name sources in invisible nodes.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
...@@ -460,6 +531,13 @@ Tests name sources in invisible nodes. ...@@ -460,6 +531,13 @@ Tests name sources in invisible nodes.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -535,6 +613,13 @@ Tests name sources in invisible nodes. ...@@ -535,6 +613,13 @@ Tests name sources in invisible nodes.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -610,6 +695,13 @@ Tests name sources in invisible nodes. ...@@ -610,6 +695,13 @@ Tests name sources in invisible nodes.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -685,6 +777,13 @@ Tests name sources in invisible nodes. ...@@ -685,6 +777,13 @@ Tests name sources in invisible nodes.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "labelledby", "name": "labelledby",
"value": { "value": {
...@@ -762,6 +861,27 @@ Tests name sources in invisible nodes. ...@@ -762,6 +861,27 @@ Tests name sources in invisible nodes.
"value": "false" "value": "false"
} }
}, },
{
"name": "focusable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{
"name": "editable",
"value": {
"type": "token",
"value": "plaintext"
}
},
{
"name": "settable",
"value": {
"type": "booleanOrUndefined",
"value": true
}
},
{ {
"name": "multiline", "name": "multiline",
"value": { "value": {
......
...@@ -116,10 +116,14 @@ experimental domain Accessibility ...@@ -116,10 +116,14 @@ experimental domain Accessibility
enum enum
busy busy
disabled disabled
editable
focusable
focused
hidden hidden
hiddenRoot hiddenRoot
invalid invalid
keyshortcuts keyshortcuts
settable
roledescription roledescription
live live
atomic atomic
......
...@@ -14,6 +14,10 @@ Accessibility.AccessibilityStrings.AXAttributes = { ...@@ -14,6 +14,10 @@ Accessibility.AccessibilityStrings.AXAttributes = {
description: 'If true, this element\'s user-entered value does not conform to validation requirement.', description: 'If true, this element\'s user-entered value does not conform to validation requirement.',
group: 'AXGlobalStates' group: 'AXGlobalStates'
}, },
'editable': {name: 'Editable', description: 'If and how this element can be edited.'},
'focusable': {name: 'Focusable', description: 'If true, this element can recieve focus.'},
'focused': {name: 'Focused', description: 'If true, this element currently has focus.'},
'settable': {name: 'Can set value', description: 'Whether the value of this element can be set.'},
'live': { 'live': {
name: 'Live region', name: 'Live region',
description: 'Whether and what priority of live updates may be expected for this element.', description: 'Whether and what priority of live updates may be expected for this element.',
......
...@@ -153,6 +153,28 @@ void FillGlobalStates(AXObject& ax_object, ...@@ -153,6 +153,28 @@ void FillGlobalStates(AXObject& ax_object,
CreateValue(ax_object.AriaInvalidValue(), AXValueTypeEnum::String))); CreateValue(ax_object.AriaInvalidValue(), AXValueTypeEnum::String)));
break; break;
} }
if (ax_object.CanSetFocusAttribute()) {
properties.addItem(CreateProperty(
AXPropertyNameEnum::Focusable,
CreateBooleanValue(true, AXValueTypeEnum::BooleanOrUndefined)));
}
if (ax_object.IsFocused()) {
properties.addItem(CreateProperty(
AXPropertyNameEnum::Focused,
CreateBooleanValue(true, AXValueTypeEnum::BooleanOrUndefined)));
}
if (ax_object.IsEditable()) {
properties.addItem(CreateProperty(
AXPropertyNameEnum::Editable,
CreateValue(ax_object.IsRichlyEditable() ? "richtext" : "plaintext",
AXValueTypeEnum::Token)));
}
if (ax_object.CanSetValueAttribute()) {
properties.addItem(CreateProperty(
AXPropertyNameEnum::Settable,
CreateBooleanValue(true, AXValueTypeEnum::BooleanOrUndefined)));
}
} }
bool RoleAllowsModal(ax::mojom::Role role) { bool RoleAllowsModal(ax::mojom::Role role) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment