Skip to content

Commit 3233f58

Browse files
committed
update string, match some logic from #8329
1 parent a868816 commit 3233f58

File tree

3 files changed

+15
-26
lines changed

3 files changed

+15
-26
lines changed

packages/@react-spectrum/combobox/intl/en-US.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
"noResults": "No results",
44
"clear": "Clear",
55
"invalid": "(invalid)",
6-
"valid": "valid"
6+
"valid": "(valid)"
77

88
}

packages/@react-spectrum/combobox/src/MobileComboBox.tsx

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ export const ComboBoxButton = React.forwardRef(function ComboBoxButton(props: Co
182182
let validId = useId();
183183
let validationIcon = validationState === 'invalid'
184184
? <AlertMedium id={invalidId} aria-label={stringFormatter.format('invalid')} />
185-
: <CheckmarkMedium id={validId} aria-hidden aria-label={stringFormatter.format('valid')} />;
185+
: <CheckmarkMedium id={validId} aria-label={stringFormatter.format('valid')} />;
186186

187187
let validation = React.cloneElement(validationIcon, {
188188
UNSAFE_className: classNames(
@@ -203,7 +203,8 @@ export const ComboBoxButton = React.forwardRef(function ComboBoxButton(props: Co
203203
props['aria-labelledby'],
204204
props['aria-label'] && !props['aria-labelledby'] ? props.id : null,
205205
valueId,
206-
validationState === 'invalid' ? invalidId : null
206+
validationState === 'invalid' ? invalidId : null,
207+
validationState === 'valid' ? validId : null
207208
].filter(Boolean).join(' '),
208209
elementType: 'div'
209210
}, objRef);
@@ -213,17 +214,7 @@ export const ComboBoxButton = React.forwardRef(function ComboBoxButton(props: Co
213214
focusClass={classNames(styles, 'is-focused')}
214215
focusRingClass={classNames(styles, 'focus-ring')}>
215216
<div
216-
{...mergeProps(
217-
hoverProps,
218-
buttonProps,
219-
validationState === 'valid' && !isDisabled
220-
? {
221-
'aria-describedby': buttonProps['aria-describedby']
222-
? `${buttonProps['aria-describedby']} ${validId}`
223-
: validId
224-
}
225-
: undefined
226-
)}
217+
{...mergeProps(hoverProps, buttonProps)}
227218
aria-haspopup="dialog"
228219
ref={objRef}
229220
style={{...style, outline: 'none'}}

packages/@react-spectrum/textfield/src/TextFieldBase.tsx

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,15 @@ export const TextFieldBase = forwardRef(function TextFieldBase(props: TextFieldB
107107
)
108108
});
109109

110+
// Add validation icon IDREF to aria-describedby when validationState is valid
111+
let inputPropsAriaDescribedBy = inputProps['aria-describedby'];
112+
if (
113+
!isInvalid && validationState === 'valid' && !isLoading && !isDisabled &&
114+
(!inputPropsAriaDescribedBy || !inputPropsAriaDescribedBy.includes(validId))
115+
) {
116+
inputProps['aria-describedby'] = [inputPropsAriaDescribedBy, validId].join(' ').trim();
117+
}
118+
110119
let {focusProps, isFocusVisible} = useFocusRing({
111120
isTextInput: true,
112121
autoFocus
@@ -129,18 +138,7 @@ export const TextFieldBase = forwardRef(function TextFieldBase(props: TextFieldB
129138
)
130139
}>
131140
<ElementType
132-
{...mergeProps(
133-
inputProps,
134-
hoverProps,
135-
focusProps,
136-
validationState === 'valid' && !isLoading && !isDisabled
137-
? {
138-
'aria-describedby': inputProps['aria-describedby']
139-
? `${inputProps['aria-describedby']} ${validId}`
140-
: validId
141-
}
142-
: undefined
143-
)}
141+
{...mergeProps(inputProps, hoverProps, focusProps)}
144142
ref={inputRef as any}
145143
rows={multiLine ? 1 : undefined}
146144
className={

0 commit comments

Comments
 (0)