diff --git a/flow/aria.js b/flow/aria.js index 54d33a67..de08ff23 100644 --- a/flow/aria.js +++ b/flow/aria.js @@ -315,5 +315,5 @@ type ARIARoleRelationConceptAttribute = { value?: string | number, // Make these explicit. These values represent quirks of the mapping betweent // ARIA and other semantic ontological systems. - constraints?: Array<'unset' | '>1'>, + constraints?: Array<'unset' | 'isset' | '>1'>, }; diff --git a/scripts/roles.json b/scripts/roles.json index 4586f926..5d122c6d 100644 --- a/scripts/roles.json +++ b/scripts/roles.json @@ -408,6 +408,78 @@ "value": 1 }] } + }, { + "module": "HTML", + "concept": { + "name": "input", + "attributes": [{ + "name": "type", + "value": "text" + }, { + "name": "list", + "constraints": ["isset"] + }] + } + }, { + "module": "HTML", + "concept": { + "name": "input", + "attributes": [{ + "name": "type", + "value": "search" + }, { + "name": "list", + "constraints": ["isset"] + }] + } + }, { + "module": "HTML", + "concept": { + "name": "input", + "attributes": [{ + "name": "type", + "value": "url" + }, { + "name": "list", + "constraints": ["isset"] + }] + } + }, { + "module": "HTML", + "concept": { + "name": "input", + "attributes": [{ + "name": "type", + "value": "tel" + }, { + "name": "list", + "constraints": ["isset"] + }] + } + }, { + "module": "HTML", + "concept": { + "name": "input", + "attributes": [{ + "name": "type", + "value": "url" + }, { + "name": "list", + "constraints": ["isset"] + }] + } + }, { + "module": "HTML", + "concept": { + "name": "input", + "attributes": [{ + "name": "type", + "value": "email" + }, { + "name": "list", + "constraints": ["isset"] + }] + } }, { "module": "XForms", "concept": { @@ -4432,7 +4504,14 @@ }, { "module": "HTML", "concept": { - "name": "input" + "name": "input", + "attributes": [{ + "name": "type", + "value": "text" + }, { + "name": "list", + "constraints": ["unset"] + }] } }, { "module": "HTML", @@ -4440,7 +4519,34 @@ "name": "input", "attributes": [{ "name": "type", - "value": "text" + "value": "email" + }, { + "name": "list", + "constraints": ["unset"] + }] + } + }, { + "module": "HTML", + "concept": { + "name": "input", + "attributes": [{ + "name": "type", + "value": "tel" + }, { + "name": "list", + "constraints": ["unset"] + }] + } + }, { + "module": "HTML", + "concept": { + "name": "input", + "attributes": [{ + "name": "type", + "value": "url" + }, { + "name": "list", + "constraints": ["unset"] }] } }], diff --git a/src/etc/roles/literal/comboboxRole.js b/src/etc/roles/literal/comboboxRole.js index 1e6c139b..5bd61f03 100644 --- a/src/etc/roles/literal/comboboxRole.js +++ b/src/etc/roles/literal/comboboxRole.js @@ -55,6 +55,114 @@ const comboboxRole: ARIARoleDefinition = { ], }, }, + { + module: 'HTML', + concept: { + name: 'input', + attributes: [ + { + name: 'type', + value: 'text', + }, + { + name: 'list', + constraints: [ + 'isset', + ], + }, + ], + }, + }, + { + module: 'HTML', + concept: { + name: 'input', + attributes: [ + { + name: 'type', + value: 'search', + }, + { + name: 'list', + constraints: [ + 'isset', + ], + }, + ], + }, + }, + { + module: 'HTML', + concept: { + name: 'input', + attributes: [ + { + name: 'type', + value: 'url', + }, + { + name: 'list', + constraints: [ + 'isset', + ], + }, + ], + }, + }, + { + module: 'HTML', + concept: { + name: 'input', + attributes: [ + { + name: 'type', + value: 'tel', + }, + { + name: 'list', + constraints: [ + 'isset', + ], + }, + ], + }, + }, + { + module: 'HTML', + concept: { + name: 'input', + attributes: [ + { + name: 'type', + value: 'url', + }, + { + name: 'list', + constraints: [ + 'isset', + ], + }, + ], + }, + }, + { + module: 'HTML', + concept: { + name: 'input', + attributes: [ + { + name: 'type', + value: 'email', + }, + { + name: 'list', + constraints: [ + 'isset', + ], + }, + ], + }, + }, { module: 'XForms', concept: { diff --git a/src/etc/roles/literal/textboxRole.js b/src/etc/roles/literal/textboxRole.js index 60170f70..eac45580 100644 --- a/src/etc/roles/literal/textboxRole.js +++ b/src/etc/roles/literal/textboxRole.js @@ -34,6 +34,18 @@ const textboxRole: ARIARoleDefinition = { module: 'HTML', concept: { name: 'input', + attributes: [ + { + name: 'type', + value: 'text', + }, + { + name: 'list', + constraints: [ + 'unset', + ], + }, + ], }, }, { @@ -43,7 +55,49 @@ const textboxRole: ARIARoleDefinition = { attributes: [ { name: 'type', - value: 'text', + value: 'email', + }, + { + name: 'list', + constraints: [ + 'unset', + ], + }, + ], + }, + }, + { + module: 'HTML', + concept: { + name: 'input', + attributes: [ + { + name: 'type', + value: 'tel', + }, + { + name: 'list', + constraints: [ + 'unset', + ], + }, + ], + }, + }, + { + module: 'HTML', + concept: { + name: 'input', + attributes: [ + { + name: 'type', + value: 'url', + }, + { + name: 'list', + constraints: [ + 'unset', + ], }, ], },