SentenceNav (Навигация по предложениям)
SentenceNav — это дополнение для NVDA, которое позволяет читать текст по предложениям, а не по абзацам или словам.
Обратите внимание: функция «Перейти к следующему абзацу с текстом» была перенесена в дополнение TextNav, которое необходимо установить отдельно.
Клавиши
- Alt+Down: перейти к следующему предложению.
- Alt+Up: перейти к предыдущему предложению.
- NVDA+Alt+S: прочитать текущее предложение.
- Alt+Windows+Down: перейти к следующей фразе.
- Alt+Windows+Up: перейти к предыдущей фразе.
Обратите внимание: функция «Перейти к следующему абзацу с текстом» была перенесена в дополнение TextNav, которое необходимо установить отдельно.
Примечания и известные проблемы
- Разметка предложений выполняется эвристическими алгоритмами и не является точной на 100%. Будьте готовы к тому, что SentenceNav иногда будет ошибаться, например, разрывать предложение там, где не нужно, или, наоборот, пропускать границу между двумя предложениями и читать их вместе.
- Начиная с версии 2.8 добавлена экспериментальная поддержка Microsoft Word и WordPad.
- Клавиши навигации по предложениям Alt+Up/Down могут конфликтовать со встроенными клавишами в приложениях. Разработчики SentenceNav стремятся разрешать такие конфликты, когда это возможно. Однако если вы столкнулись с такой ситуацией, простой способ обойти её — нажать NVDA+F2 (пропустить следующую клавишу), а затем конфликтующую комбинацию Alt+Up/Down, чтобы эта комбинация была обработана приложением, а не SentenceNav.
Алгоритм
SentenceNav использует регулярное выражение для поиска границ предложений. Регулярное выражение ищет:
- Один или несколько знаков препинания — «разделителей предложений», таких как точка, восклицательный или вопросительный знак, за которыми сразу следует один или несколько пробелов.
- За разделителями предложений могут опционально следовать один или несколько «пропускаемых» знаков препинания, таких как закрывающая скобка или кавычка.
- За разделителями предложений может опционально следовать ссылка в стиле Википедии, например [4] или [источник не указан].
- Перед разделителями предложений не должно быть исключительных сокращений, таких как Dr., Mr., Prof. и т.п. Исключительные сокращения зависят от языка. Они определяются как сокращения, написанные с точкой, которая в большинстве случаев не указывает на конец предложения.
- Перед разделителями предложений не должна стоять одиночная заглавная буква. Это предотвращает разрыв предложений на инициалах людей, например, George R. R. Martin. Список заглавных букв зависит от языка.
- Кроме того, регулярное выражение может соответствовать одному из полноширинных разделителей предложений. Полноширинная пунктуация используется в некоторых языках, таких как китайский и японский, и для неё не требуется наличие пробелов до или после, чтобы считаться границей предложения.
- Двойной перевод строки также считается разделителем предложений.
Обнаружение фраз выполняется с помощью другого регулярного выражения, которое соответствует:
- Одному или нескольким знакам препинания — «разделителям фраз», за которыми сразу следует один или несколько пробелов.
- Или, альтернативно, одному или нескольким «полноширинным» разделителям фраз, без требования следования пробелов.
- Или двойному переводу строки.
Другие настройки
- Восстанавливать предложения в нескольких абзацах: предложения могут охватывать несколько абзацев. Это часто встречается в некачественно оформленных PDF-документах или в текстовых сообщениях электронной почты. С помощью этого поля со списком вы можете указать SentenceNav пытаться идентифицировать такие предложения и читать их правильно. Однако иногда это может приводить к чтению вместе абзацев, которые не должны быть предложениями. В этом случае вы можете отключить эту функцию.
- Отключать SentenceNav в приложениях: Вы можете отключить SentenceNav в определённых приложениях. Например, некоторые приложения используют комбинацию Alt+Down для выполнения других функций. Это список приложений, разделённый запятыми, в которых навигация по предложениям будет отключена. Если вы не уверены, как называется ваше приложение, переключитесь на него, нажмите NVDA+Control+Z, чтобы открыть консоль NVDA, и введите: «focus.appModule.appName» (без кавычек), чтобы получить имя текущего приложения.
Исходный код
Исходный код доступен на http://github.com/mltony/nvda-sentence-nav.
Загрузка
- Текущая стабильная версия: SentenceNav
- Последняя версия для Python 2 (совместима с NVDA 2019.2 и более ранними версиями): SentenceNav v2.5
Перевод