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.0.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.
import {useLabel} from '@react-aria/label';
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" />
import {useLabel} from '@react-aria/label';
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" />
import {useLabel} from '@react-aria/label';
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.
Name | Type | Default | Description |
labelElementType | ElementType | 'label' | The HTML element used to render the label, e.g. 'label', or 'span'. |
label | ReactNode | — | The content to display as the label. |
isRequired | boolean | — | Whether the label is labeling a required field or group. |
id | string | — | The element's unique identifier. See MDN. |
aria-label | string | — | Defines a string value that labels the current element. |
aria-labelledby | string | — | Identifies the element (or elements) that labels the current element. |
aria-describedby | string | — | Identifies the element (or elements) that describes the object. |
aria-details | string | — | Identifies the element (or elements) that provide a detailed, extended description for the object. |
Name | Type | Description |
labelProps | LabelHTMLAttributes<HTMLLabelElement> | Props to apply to the label container element |
fieldProps | HTMLAttributes<HTMLElement> | Props to apply to the field container element being labeled |