Per the canonical book §6.2 + §9.2 mapping, six morfos with `signal.warn`,
`signal.alert` or `signal.notify` events get explicit `persistence` +
`a11ySemantic` annotations, and their providers wire up `clearTarget` +
caller-message integration with the shared live region.
**Morfo annotations**:
| Morfo / event | persistence | a11ySemantic |
|--------------------------------------------|----------------|---------------------------------------------------------|
| announce.signal-alert | untilAction | requiresPersistentTrace + requiresLiveRegion |
| form.signal-warn-invalid | untilFix | requiresPersistentTrace + requiresFocusMove + reducedMotionFallback='text' |
| file-upload.signal-warn-reject | untilFix | requiresPersistentTrace + reducedMotionFallback='text' |
| password-field.signal-notify-caps-state | stateBound | requiresLiveRegion + reducedMotionFallback='text' |
| tags-input.signal-warn-reject | untilFix | requiresPersistentTrace + reducedMotionFallback='text' |
| textarea.signal-warn-count-overflow | untilFix | requiresPersistentTrace + reducedMotionFallback='text' |
**Provider wiring**:
- form-provider: clearTarget on submit, message="{N} form errors..." via
FORM_LANGS.ERROR_SUMMARY_*.
- file-upload-provider: clearTarget before each accept/reject cycle, message
via new FILE_UPLOAD_LANGS.REJECT_SUMMARY_{SINGLE,MULTI}.
- password-field-provider: clearTarget on caps-off transition, message
via existing PASSWORD_FIELD_LANGS.CAPS_WARNING.
- tags-input-provider: helper `emitWarnReject` (clear + emit + message
via new TAGS_INPUT_LANGS.REJECT_WARNING), called from addTagValue,
addFromInput, handlePaste. Successful add also clears (the add is the fix).
- textarea-provider: emits only on transition INTO overflow, clears in
transition OUT (untilFix projection persists). Message via new
TEXTAREA_LANGS.OVERFLOW_WARNING with {{max}}.
Three new lang catalog entries (reject/overflow warnings) merged into
the existing components.{name}.* namespaces.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
active-uix
parent
70f6f3bf0d
commit
c34fd1fd31
@ -1,5 +1,6 @@
|
||||
/** Idlangref constants for the TagsInput component. */
|
||||
export const TAGS_INPUT_LANGS = {
|
||||
REMOVE: '#?components.tags-input.remove|Remove tag',
|
||||
CLEAR: '#?components.tags-input.clear|Clear all tags'
|
||||
CLEAR: '#?components.tags-input.clear|Clear all tags',
|
||||
REJECT_WARNING: '#?components.tags-input.reject-warning|Tag could not be added'
|
||||
} as const;
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
/** Idlangref constants for the TextArea component. */
|
||||
export const TEXTAREA_LANGS = {
|
||||
LABEL: '#?components.textarea.label|Text area',
|
||||
COUNT: '#?components.textarea.count|{{count}} of {{max}}'
|
||||
COUNT: '#?components.textarea.count|{{count}} of {{max}}',
|
||||
OVERFLOW_WARNING:
|
||||
'#?components.textarea.overflow-warning|Character limit of {{max}} reached'
|
||||
} as const;
|
||||
|
||||
Loading…
Reference in new issue