Я могу включить проверку орфографии с помощью проверки правописания = "true", а также установить подсказку языка с помощью атрибута lang элемента. В Firefox динамическое изменение textarea.lang заставляет встроенную проверку орфографии переключать словари. Но в Chrome и Edge изменение языка во время выполнения, похоже, вообще не влияет на проверку орфографии (даже если словари установлены/включены). Переключение проверки правописания и принудительное размытие/фокус не помогают.
Минимальное воспроизведение:
Код: Выделить всё
pt-PT
en-GB
const pt = document.getElementById("pt");
const en = document.getElementById("en");
const t = document.getElementById("t");
function apply() {
if (this === pt && pt.checked) en.checked = false;
if (this === en && en.checked) pt.checked = false;
t.lang = pt.checked ? "pt-PT" : "en-GB";
// try to force re-evaluation (doesn't help in Chrome/Edge)
t.blur(); t.focus();
}
pt.addEventListener("change", apply);
en.addEventListener("change", apply);
- Существует ли спецификация/стандартная причина, по которой браузеры не предоставляют надежный способ выбора словаря проверки орфографии для каждого элемента (или реакции на динамические изменения языка)?
- Является ли поведение Chrome/Edge намеренным (например, производительность, конфиденциальность, UX) согласованность, ограничения интеграции ОС) или это считается ошибкой/пробелом в функциях?
- Существуют ли какие-либо обходные пути, которые по-прежнему используют встроенную проверку орфографии (а не полную пользовательскую проверку орфографии), или это единственный реальный вариант реализовать проверку орфографии самостоятельно?
Подробнее здесь: https://stackoverflow.com/questions/799 ... -languagei
Мобильная версия