pull/8195/head
Simon Holthausen 4 years ago
parent 2e52b4eee9
commit fb868ae1fe

@ -155,7 +155,7 @@ function input_implicit_role(attribute_map: Map<string, Attribute>) {
const list_attribute_exists = attribute_map.has('list'); const list_attribute_exists = attribute_map.has('list');
if (list_attribute_exists && combobox_if_list.has(type)) { if (list_attribute_exists && combobox_if_list.has(type)) {
return 'combobox'; return 'combobox';
} }
return input_type_to_implicit_role.get(type); return input_type_to_implicit_role.get(type);
@ -170,11 +170,11 @@ function menuitem_implicit_role(attribute_map: Map<string, Attribute>) {
function get_implicit_role(name: string, attribute_map: Map<string, Attribute>) : (string | undefined) { function get_implicit_role(name: string, attribute_map: Map<string, Attribute>) : (string | undefined) {
if (name === 'menuitem') { if (name === 'menuitem') {
return menuitem_implicit_role(attribute_map); return menuitem_implicit_role(attribute_map);
} else if (name === 'input') { } else if (name === 'input') {
return input_implicit_role(attribute_map); return input_implicit_role(attribute_map);
} else { } else {
return a11y_implicit_semantics.get(name); return a11y_implicit_semantics.get(name);
} }
} }
@ -551,7 +551,7 @@ export default class Element extends Node {
// aria-activedescendant-has-tabindex // aria-activedescendant-has-tabindex
if (name === 'aria-activedescendant' && !is_interactive_element(this.name, attribute_map) && !attribute_map.has('tabindex')) { if (name === 'aria-activedescendant' && !is_interactive_element(this.name, attribute_map) && !attribute_map.has('tabindex')) {
component.warn(attribute, compiler_warnings.a11y_aria_activedescendant_has_tabindex); component.warn(attribute, compiler_warnings.a11y_aria_activedescendant_has_tabindex);
} }
} }
@ -669,22 +669,22 @@ export default class Element extends Node {
} }
} }
// role-supports-aria-props // role-supports-aria-props
const role = attribute_map.get('role'); const role = attribute_map.get('role');
const role_value = (role ? role.get_static_value() : get_implicit_role(this.name, attribute_map)) as ARIARoleDefintionKey; const role_value = (role ? role.get_static_value() : get_implicit_role(this.name, attribute_map)) as ARIARoleDefintionKey;
if (typeof role_value === 'string' && roles.has(role_value)) { if (typeof role_value === 'string' && roles.has(role_value)) {
const { props } = roles.get(role_value); const { props } = roles.get(role_value);
const invalid_aria_props = new Set(aria.keys().filter(attribute => !(attribute in props))); const invalid_aria_props = new Set(aria.keys().filter(attribute => !(attribute in props)));
const is_implicit = role_value && role === undefined; const is_implicit = role_value && role === undefined;
attributes attributes
.filter(prop => prop.type !== 'Spread') .filter(prop => prop.type !== 'Spread')
.forEach(prop => { .forEach(prop => {
if (invalid_aria_props.has(prop.name as ARIAProperty)) { if (invalid_aria_props.has(prop.name as ARIAProperty)) {
component.warn(prop, compiler_warnings.a11y_role_supports_aria_props(prop.name, role_value, is_implicit, this.name)); component.warn(prop, compiler_warnings.a11y_role_supports_aria_props(prop.name, role_value, is_implicit, this.name));
} }
}); });
} }
} }
validate_special_cases() { validate_special_cases() {

Loading…
Cancel
Save