useLabel
Provides the accessibility implementation for labels and their associated elements. Labels provide context for user inputs.
install | yarn add @react-aria/label |
---|---|
version | 3.2.1 |
usage | import {useLabel} from '@react-aria/label' |
API#
useLabel(
(props: LabelAriaProps
)): LabelAria
Example#
The useLabel
hook associates a label with a field. It automatically handles
creating an id for the field and associates the label with it.
function ColorField(props) {
let {labelProps fieldProps} = useLabel(props);
return (
<>
<label ...labelProps> propslabel</label>
<select ...fieldProps>
<option>Indigo</option>
<option>Maroon</option>
<option>Chartreuse</option>
</select>
</>
);
}
<ColorField label="Favorite color" />
function ColorField(props) {
let {labelProps fieldProps} = useLabel(props);
return (
<>
<label ...labelProps> propslabel</label>
<select ...fieldProps>
<option>Indigo</option>
<option>Maroon</option>
<option>Chartreuse</option>
</select>
</>
);
}
<ColorField label="Favorite color" />
function ColorField(
props
) {
let {
labelProps
fieldProps
} = useLabel(props);
return (
<>
<label
...labelProps>
propslabel
</label>
<select
...fieldProps>
<option>
Indigo
</option>
<option>
Maroon
</option>
<option>
Chartreuse
</option>
</select>
</>
);
}
<ColorField label="Favorite color" />
By default, useLabel
assumes that the label is a native HTML label element.
However, if you are labeling a non-native form element, be sure to use an
element other than a <label>
and set the labelElementType
prop appropriately.
See useRadioGroup and useTextField
for examples of how useLabel
is used by components.