Fixed #2831 - Improve CascadeSelect implementation for Accessibility

This commit is contained in:
mertsincan 2022-08-07 23:49:21 +01:00
parent ffea8cd86d
commit f66fc40c3c
4 changed files with 801 additions and 331 deletions

View file

@ -23,6 +23,12 @@ const CascadeSelectProps = [
default: "null",
description: "Property name or getter function to use as the value of an option, defaults to the option itself when not defined."
},
{
name: "optionDisabled",
type: "boolean",
default: "null",
description: "Property name or getter function to use as the disabled flag of an option, defaults to false when not defined."
},
{
name: "optionGroupLabel",
type: "string | function",
@ -54,10 +60,40 @@ const CascadeSelectProps = [
description: "A property to uniquely identify an option."
},
{
name: "tabindex",
type: "number",
name: "inputStyle",
type: "object",
default: "null",
description: "Index of the element in tabbing order."
description: "Inline style of the input field."
},
{
name: "inputClass",
type: "string",
default: "null",
description: "Style class of the input field."
},
{
name: "inputProps",
type: "object",
default: "null",
description: "Uses to pass all properties of the HTMLInputElement/HTMLSpanElement to the focusable input element inside the component."
},
{
name: "panelStyle",
type: "object",
default: "null",
description: "Inline style of the overlay panel."
},
{
name: "panelClass",
type: "string",
default: "null",
description: "Style class of the overlay panel."
},
{
name: "panelProps",
type: "object",
default: "null",
description: "Uses to pass all properties of the HTMLDivElement to the overlay panel inside the component."
},
{
name: "appendTo",
@ -78,22 +114,58 @@ const CascadeSelectProps = [
description: "Icon to display in loading state."
},
{
name: "inputId",
name: "autoOptionFocus",
type: "boolean",
default: "true",
description: "Whether to focus on the first visible or selected element when the overlay panel is shown."
},
{
name: "searchLocale",
type: "string",
default: "undefined",
description: "Locale to use in searching. The default locale is the host environment's current locale."
},
{
name: "searchMessage",
type: "string",
default: "{0} results are available",
description: "Text to be displayed in hidden accessible field when filtering returns any results. Defaults to value from PrimeVue locale configuration."
},
{
name: "selectionMessage",
type: "string",
default: "{0} items selected",
description: "Text to be displayed in hidden accessible field when options are selected. Defaults to value from PrimeVue locale configuration."
},
{
name: "emptySelectionMessage",
type: "string",
default: "No selected item",
description: "Text to be displayed in hidden accessible field when any option is not selected. Defaults to value from PrimeVue locale configuration."
},
{
name: "emptySearchMessage",
type: "string",
default: "No results found",
description: "Text to display when filtering does not return any results. Defaults to value from PrimeVue locale configuration."
},
{
name: "tabindex",
type: "number",
default: "0",
description: "Index of the element in tabbing order."
},
{
name: "aria-label",
type: "string",
default: "null",
description: "Defines a string value that labels an interactive element."
},
{
name: "aria-labelledby",
type: "string",
default: "null",
description: "Identifier of the underlying input element."
},
{
name: "inputClass",
type: "any",
default: "null",
description: "Style class of the input field."
},
{
name: "inputStyle",
type: "any",
default: "null",
description: "Inline style of the input field."
}
];
@ -114,6 +186,39 @@ const CascadeSelectEvents = [
}
]
},
{
name: "focus",
description: "Callback to invoke when component receives focus.",
arguments: [
{
name: "event",
type: "object",
description: "Browser event"
}
]
},
{
name: "blur",
description: "Callback to invoke when component loses focus.",
arguments: [
{
name: "event",
type: "object",
description: "Browser event"
}
]
},
{
name: "click",
description: "Callback to invoke on click.",
arguments: [
{
name: "event",
type: "object",
description: "Browser event"
}
]
},
{
name: "group-change",
description: "Callback to invoke when a group changes.",