Type 500 into a field whose max is 100 and, on blur, the value becomes 100. onChange fires, aria-valuenow updates, and nothing is announced. A screen reader user who has already moved on never learns the number changed.
- Put the range in the field's description, wired with aria-describedby, so it is read before the value is entered rather than after it is corrected.
- Where the correction matters, announce it with a polite live region, or with Form.Item's validation message, which is already tied to the field.
- While the reader types, an out-of-range value only changes the text color and sets no ARIA. To have it announced, set aria-invalid yourself when the value is outside min and max.
- status only paints a border color. Never let status be the only signal. Pair it with a message, and inside a Form.Item let the form own both.