aria function
Map<String, String>
aria({
- AriaRole? role,
- String? label,
- String? labelledBy,
- String? labelledby,
- String? describedBy,
- String? describedby,
- String? details,
- String? errorMessage,
- String? errormessage,
- String? flowTo,
- String? flowto,
- String? controls,
- String? owns,
- bool? expanded,
- bool? selected,
- bool? checked,
- AriaChecked? checkedState,
- bool? pressed,
- AriaPressed? pressedState,
- bool? disabled,
- bool? required,
- bool? readOnly,
- bool? readonly,
- bool? modal,
- bool? multiselectable,
- bool? multiLine,
- bool? multiline,
- bool? busy,
- bool? atomic,
- bool? invalid,
- AriaInvalid? invalidState,
- AriaLive? live,
- AriaCurrent? current,
- AriaHasPopup? hasPopup,
- AriaHasPopup? haspopup,
- AriaOrientation? orientation,
- AriaAutocomplete? autocomplete,
- AriaSort? sort,
- AriaRelevant? relevant,
- int? level,
- int? setSize,
- int? setsize,
- int? posInSet,
- int? posinset,
- int? colIndex,
- int? rowIndex,
- int? colSpan,
- int? rowSpan,
- num? valueMin,
- num? valuemin,
- num? valueMax,
- num? valuemax,
- num? valueNow,
- num? valuenow,
- String? valueText,
- String? valuetext,
- String? keyShortcuts,
- String? keyshortcuts,
- String? placeholder,
- String? roleDescription,
- String? roledescription,
- Map<
String, String> ? extra,
Generates a map of WAI-ARIA and accessibility attributes.
Only non-null parameters are included in the returned map.
Boolean parameters are serialized as "true" or "false".
Compose directly with element attrs:
Button(
attrs: {
...aria(
role: AriaRole.button,
label: 'Close dialog',
expanded: false,
controls: 'settings-modal',
),
'id': 'close-btn',
},
text: 'Close',
)
Implementation
Map<String, String> aria({
AriaRole? role,
String? label,
String? labelledBy,
String? labelledby,
String? describedBy,
String? describedby,
String? details,
String? errorMessage,
String? errormessage,
String? flowTo,
String? flowto,
String? controls,
String? owns,
bool? hidden,
bool? expanded,
bool? selected,
bool? checked,
AriaChecked? checkedState,
bool? pressed,
AriaPressed? pressedState,
bool? disabled,
bool? required,
bool? readOnly,
bool? readonly,
bool? modal,
bool? multiselectable,
bool? multiLine,
bool? multiline,
bool? busy,
bool? atomic,
bool? invalid,
AriaInvalid? invalidState,
AriaLive? live,
AriaCurrent? current,
AriaHasPopup? hasPopup,
AriaHasPopup? haspopup,
AriaOrientation? orientation,
AriaAutocomplete? autocomplete,
AriaSort? sort,
AriaRelevant? relevant,
int? level,
int? setSize,
int? setsize,
int? posInSet,
int? posinset,
int? colIndex,
int? rowIndex,
int? colSpan,
int? rowSpan,
num? valueMin,
num? valuemin,
num? valueMax,
num? valuemax,
num? valueNow,
num? valuenow,
String? valueText,
String? valuetext,
String? keyShortcuts,
String? keyshortcuts,
String? placeholder,
String? roleDescription,
String? roledescription,
Map<String, String>? extra,
}) {
final out = <String, String>{};
if (role != null) out['role'] = role.value;
if (label != null) out['aria-label'] = label;
final effLabelledBy = labelledBy ?? labelledby;
if (effLabelledBy != null) out['aria-labelledby'] = effLabelledBy;
final effDescribedBy = describedBy ?? describedby;
if (effDescribedBy != null) out['aria-describedby'] = effDescribedBy;
if (details != null) out['aria-details'] = details;
final effErrorMessage = errorMessage ?? errormessage;
if (effErrorMessage != null) out['aria-errormessage'] = effErrorMessage;
final effFlowTo = flowTo ?? flowto;
if (effFlowTo != null) out['aria-flowto'] = effFlowTo;
if (controls != null) out['aria-controls'] = controls;
if (owns != null) out['aria-owns'] = owns;
if (hidden != null) out['aria-hidden'] = hidden ? 'true' : 'false';
if (expanded != null) out['aria-expanded'] = expanded ? 'true' : 'false';
if (selected != null) out['aria-selected'] = selected ? 'true' : 'false';
final effChecked = checkedState?.value ?? (checked != null ? (checked ? 'true' : 'false') : null);
if (effChecked != null) out['aria-checked'] = effChecked;
final effPressed = pressedState?.value ?? (pressed != null ? (pressed ? 'true' : 'false') : null);
if (effPressed != null) out['aria-pressed'] = effPressed;
if (disabled != null) out['aria-disabled'] = disabled ? 'true' : 'false';
if (required != null) out['aria-required'] = required ? 'true' : 'false';
final effReadOnly = readOnly ?? readonly;
if (effReadOnly != null) out['aria-readonly'] = effReadOnly ? 'true' : 'false';
if (modal != null) out['aria-modal'] = modal ? 'true' : 'false';
if (multiselectable != null) {
out['aria-multiselectable'] = multiselectable ? 'true' : 'false';
}
final effMultiLine = multiLine ?? multiline;
if (effMultiLine != null) {
out['aria-multiline'] = effMultiLine ? 'true' : 'false';
}
if (busy != null) out['aria-busy'] = busy ? 'true' : 'false';
if (atomic != null) out['aria-atomic'] = atomic ? 'true' : 'false';
final effInvalid = invalidState?.value ?? (invalid != null ? (invalid ? 'true' : 'false') : null);
if (effInvalid != null) out['aria-invalid'] = effInvalid;
if (live != null) out['aria-live'] = live.value;
if (current != null) out['aria-current'] = current.value;
final effHasPopup = hasPopup ?? haspopup;
if (effHasPopup != null) out['aria-haspopup'] = effHasPopup.value;
if (orientation != null) out['aria-orientation'] = orientation.value;
if (autocomplete != null) out['aria-autocomplete'] = autocomplete.value;
if (sort != null) out['aria-sort'] = sort.value;
if (relevant != null) out['aria-relevant'] = relevant.value;
if (level != null) out['aria-level'] = level.toString();
final effSetSize = setSize ?? setsize;
if (effSetSize != null) out['aria-setsize'] = effSetSize.toString();
final effPosInSet = posInSet ?? posinset;
if (effPosInSet != null) out['aria-posinset'] = effPosInSet.toString();
if (colIndex != null) out['aria-colindex'] = colIndex.toString();
if (rowIndex != null) out['aria-rowindex'] = rowIndex.toString();
if (colSpan != null) out['aria-colspan'] = colSpan.toString();
if (rowSpan != null) out['aria-rowspan'] = rowSpan.toString();
final effValueMin = valueMin ?? valuemin;
if (effValueMin != null) out['aria-valuemin'] = _formatNum(effValueMin);
final effValueMax = valueMax ?? valuemax;
if (effValueMax != null) out['aria-valuemax'] = _formatNum(effValueMax);
final effValueNow = valueNow ?? valuenow;
if (effValueNow != null) out['aria-valuenow'] = _formatNum(effValueNow);
final effValueText = valueText ?? valuetext;
if (effValueText != null) out['aria-valuetext'] = effValueText;
final effKeyShortcuts = keyShortcuts ?? keyshortcuts;
if (effKeyShortcuts != null) out['aria-keyshortcuts'] = effKeyShortcuts;
if (placeholder != null) out['aria-placeholder'] = placeholder;
final effRoleDescription = roleDescription ?? roledescription;
if (effRoleDescription != null) {
out['aria-roledescription'] = effRoleDescription;
}
if (extra != null) {
out.addAll(extra);
}
return out;
}