Restricts freeform input to a character class without a full mask.
Place on the <input>. Cancels any beforeinput insertion (typing, paste,
IME commit) that contains a disallowed character and announces the rejection
assertively through the shared live region - a rejected keystroke is a state
change, never a silent drop (Pillar 2). Deletions and navigation are never
touched. For full positional formatting use CngxInputMask; this is the
lighter "digits only" tool (Pillar 3).