diff --git a/components/lib/dropdown/Dropdown.js b/components/lib/dropdown/Dropdown.js index 41d4d4d5cc..44397fbf0c 100644 --- a/components/lib/dropdown/Dropdown.js +++ b/components/lib/dropdown/Dropdown.js @@ -840,6 +840,11 @@ export const Dropdown = React.memo( const updateEditableLabel = (option) => { if (inputRef.current) { inputRef.current.value = option ? getOptionLabel(option) : props.value || ''; + + // #1413 NVDA screenreader + if (focusInputRef.current) { + focusInputRef.current.value = inputRef.current.value; + } } }; @@ -885,6 +890,11 @@ export const Dropdown = React.memo( const value = label || props.value || ''; inputRef.current.value = value; + + // #1413 NVDA screenreader + if (focusInputRef.current) { + focusInputRef.current.value = value; + } } }; @@ -996,6 +1006,12 @@ export const Dropdown = React.memo( }; const createKeyboardHelper = () => { + let value = ObjectUtils.isNotEmpty(selectedOption) ? getOptionLabel(selectedOption) : null; + + if (props.editable) { + value = value || props.value || ''; + } + const hiddenSelectedMessageProps = mergeProps( { className: 'p-hidden-accessible' @@ -1007,6 +1023,7 @@ export const Dropdown = React.memo( { ref: focusInputRef, id: props.inputId, + defaultValue: value, type: 'text', readOnly: true, 'aria-haspopup': 'listbox',