Рецепты
Автосохранение и Строка статуса
Сохранение по уходу фокуса, «Сохранено» для скринридера и число слов под полем.
Строка под Документом делится на два места: Строка статуса — то, что кладёт экран (status),
и счётчик кита у maxLength. Рецепт сохраняет Документ, когда автор ушёл из поля, и говорит об этом.
0 words
Поправьте текст и щёлкните мимо поля: появится «Saving…», затем «Saved». Счётчик символов кита появится, когда текст подойдёт к 80 % предела.
Как устроено
onBlur— о Фокусе поля целиком. Переход в Панель, поповер ссылки и обратно его не вызывает. ПередonBlurкит выталкивает отложенныйonChange, но состояние экрана ещё не перерисовано — поэтому свежий Документ берётся из Хэндла:ref.current.getHTML().- Живой регион стоит постоянно. Меняется только текст внутри
role="status": регион, вставленный вместе с текстом, скринридеры часто не читают. - Число слов — без
role. Иначе оно звучало бы на каждую правку. Кит сам строку не озвучивает. - Ошибку сохранения показывайте там же, где экран показывает ошибки формы.
showNotice— для событий самого поля (отказ вставки, загрузка файла).