Provides the accessibility implementation for labels and their associated elements. Labels provide context for user inputs.
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.
import {useLabel} from 'react-aria/useLabel';
function ColorField(props) {
let {labelProps, fieldProps} = useLabel(props);
return (
<>
<label {...labelProps}>{props.label}</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.
API
useLabel (props: LabelAriaProps ): LabelAria
LabelAriaProps
| Name | Type | Default |
|---|---|---|
labelElementType | ElementType | Default: 'label'
|
The HTML element used to render the label, e.g. 'label', or 'span'. | ||
LabelAria
| Name | Type | |
|---|---|---|
labelProps | DOMAttributes | LabelHTMLAttributes | |
Props to apply to the label container element. | ||
fieldProps | AriaLabelingProps & DOMProps | |
Props to apply to the field container element being labeled. | ||