nvda-sentence-nav
SentenceNav («Навігація по реченнях») — це додаток для NVDA, що дозволяє читати текст по реченнях, а не по абзацах чи словах.
Будь ласка, зауважте, що функцію «Перейти до наступного абзацу з текстом» було переміщено у додаток TextNav, який потрібно встановити окремо.
Комбінації клавіш
- Alt+стрілка вниз: Перейти до наступного речення.
- Alt+стрілка вгору: Перейти до попереднього речення.
- NVDA+Alt+S: Вимовити поточне речення.
- Alt+Windows+Стрілка вниз: Перейти до наступної фрази.
- Alt+Windows+стрілка вгору: Перейти до попередньої фрази.
Будь ласка, зауважте, що функцію «Перейти до наступного абзацу з текстом» було переміщено у додаток TextNav, який потрібно встановити окремо.
Примітки та відомі проблеми
- Розмітка речень виконується за допомогою евристичних алгоритмів і не є на 100% точною. Очікуйте, що SentenceNav час від часу допускатиме помилки, наприклад, розриватиме речення там, де його не потрібно розривати, або навпаки – пропускатиме роздільник між двома реченнями та промовлятиме їх разом.
- Починаючи з версії 2.8, додано експериментальну підтримку Microsoft Word і WordPad.
- комбінації клавіш навігації по реченнях Alt+стрілка вгору/вниз можуть конфліктувати з комбінаціями клавіш програм. Розробники SentenceNav намагаються вирішити ці конфлікти, коли це можливо. Однак, якщо ви зіткнетеся з такою ситуацією, простим обхідним шляхом є натискання NVDA+F2 (Пропустити наступну клавішу), з подальшим натисканням клавіш Alt+стрілка вгору/вниз, щоб переконатися, що це натискання клавіші буде опрацьовано програмою, а не SentenceNav.
Алгоритм
SentenceNav використовує регулярний вираз для пошуку меж речень. Регулярний вираз шукає:
- Один або кілька розділових знаків «роздільників речення», наприклад крапка, знак оклику або знак питання, після яких відразу йде один або кілька пробілів.
- За роздільниками речень опціонально можуть слідувати один або кілька розділових знаків, які можна пропустити, наприклад, закривна дужка або лапки.
- За роздільниками речень опціонально може слідувати посилання у стилі Вікіпедії, наприклад [4], або [потрібна цитата].
- Перед роздільниками речень не має стояти жодне з виняткових скорочень, як от Dr., Mr., Prof., тощо. Виняткові скорочення залежать від мови. Виняткові скорочення визначаються як абревіатури, що пишуться з крапкою, яка у більшості випадків не вказує на закінчення речення.
- Роздільникам реченнь не має передувати одинока велика літера. Це зроблено для запобігання розриву речень на ініціалах людей, як от George R. R. Martin. Список великих літер залежить від мови.
- Крім того, регулярний вираз може відповідати одному з роздільників речень на всю ширину. Пунктуація повної ширини використовується в деяких мовах, як-от китайська та японська, і немає вимог, щоб після них або перед ними ставилося щось, що вважається межею речень.
- Окрім того, подвійний новий рядок вважається роздільником речення.
Виявлення фрази виконується іншим регулярним виразом, який відповідає:
- Одному, або кільком розділовим знакам «роздільників фраз», за якими відразу йдуть один або кілька пробілів.
- Або одному чи кільком роздільникам фраз фіксованої ширини, без вимоги слідування за ними пробілів.
- Або подвійному новому рядку.
Інші налаштування
- Реконструювати речення в кількох абзацах: речення можуть охоплювати кілька абзаців. Це часто трапляється в неправильно сформованих PDF-документах або в електронних листах, написаних як звичайний текст. За допомогою цього комбінованого списку SentenceNav може спробувати розпізнати ці речення та вимовити їх правильно. Однак інколи він озвучував абзаци разом, які не мали би бути реченнями. У цьому випадку ви можете вимкнути цю функцію.
- Вимкнути «Навігацію по реченнях» у програмах: Ви можете вимкнути «Навігацію по реченнях» у певних програмах. Наприклад, деякі програми використовують клавіші Alt+стрілка вниз для виконання інших функцій. Це чорний список програм, розділенних комами, у яких буде вимкнено навігацію по реченнях. Якщо ви не впевнені у назві вашої програми, перейдіть до цієї програми, Натисніть NVDA+Control+Z, щоб відкрити консоль NVDA і введіть: "focus.appModule.appName" без лапок, щоб отримати назву поточної програми.
Джерельний код
Джерельний код доступний за посиланням http://github.com/mltony/nvda-sentence-nav.
Завантаження