Access8Math

This NVDA addon provides the function of reading math content. Although the original NVDA already equipped this feature by applying MathPlayer, some functions still needed to be improved, such as not providing or incomplete specific language translation, not providing specific language navigation and browsing and many more.

Navigation interactive mode can segment a math content into smaller partial fragments for speaking, and select the read fragment and method through a series of keyboard key operations. This function can better understand the structure and items of long math content. The hierarchical relationship with the item.

Reading feature

  • Read math content written in MathML in web browser(Mozilla Firefox, Microsoft Internet Explorer and Google Chrome) or read Microsoft Word math content written in MathType. (MathPlayer installed only)
  • Interaction: Press space or enter on the MathML math object to enter navigation interactive mode. It means you can browse part of the sub-content in the math content and move between sub-contents or zoom the size of the sub-content
  • Naciśnięcie "Spacji" na zapisie matematycznym otwiera "okno interakcji Access8Math" zawierające przyciski "interakcja" i "kopiuj"

    • Za pomocą interakcji można przeglądać poszczególne części wyrażenia oraz poruszać się po elementach składowych danej części lub włączyć na nich zbliżenie.
    • Kopiuj: Kopiuje kod źródłowy obiektu MathML.
  • Text review: Press the numeric keyboard 1-9 during navigation to read the mathematical content of the serialized text word by word and line by line

  • Analyze the overall mathematical meaning of the content: analyze the structure of MathML, and when it meets a specific rule, read it aloud in the mathematical meaning of the rule
  • Analyze the mathematical meaning of the content item: When navigating and browsing, it will prompt the meaning of the content under its upper content. For example, there are two score items, and moving between them will enroll the item as the denominator or numerator

navigation interactive mode command:

  • "Strzałka w dół": Włącza zbliżenie na mniejszy element zapisu.
  • "Strzałka w górę": Wyłącza zbliżenie na większy element zapisu.
  • "Strzałka w lewo": Przechodzi do poprzedniego zapisu.
  • "Strzałka w prawo": Przechodzi do następnego zapisu.
  • "Home": Move back to the top.(Entire math content)
  • "Ctrl+c": Kopiuje kod źródłowy obiektu MathML.
  • "Klawisze numeryczne 1~9": Czyta treść matematyczną jako tekst, za pomocą przeglądu tekstu NVDA.
  • "ESC": Zamyka tryb nawigacji.

Writing feature

Writing mixed content (text content and mathematical content):

write mixed content

Use delimiter(start delimiter "(" and end delimiter ")", LaTeX block) to determine the area between the text content and the mathematical content, that is, the data in LaTeX block is mathematical content (LaTeX), and the data outside LaTeX block is text content.

Press alt+h in edit field to convert an HTML document with mixed text data and mathematical data and can be reviewed or exported. The data in the LaTeX block will be converted to MathML for presentation with normal text.

  • review: Open the converted HTML document through a program that opens the .HTML extension by default.
  • export: Pack the converted HTML document into a zip file.

Press alt+m key in edit field to pop up the markup command window, select "LaTeX" and press enter, the LaTeX block will be added to the current cursor and the cursor will be automatically moved into it for quick input the content.

Press alt+l key in edit field to pop up the LaTeX command window, select the LaTeX command item to be added and press enter to add the corresponding LaTeX syntax at the current cursor and automatically move the cursor to the appropriate input point for quick Enter the content.

LaTeX command window

  • Select the LaTeX command item and press f1~f12 to set the shortcut
  • Select the LaTeX command item and press d to remove the shortcut that has been set
  • Select the LaTeX command item and press enter to add the corresponding LaTeX syntax at the current cursor

Edit cursor navigation move

  • In edit field, press alt+left arrow key to move to the start point of the previous data block
  • In edit field, press alt+down key without moving, but only read the content of the current data block
  • In edit field, press alt+right arrow key to move to the start point of the next data block
  • In edit field, press alt+home to move to the start point of the current data block
  • In edit field, press alt+end to move to the end point of the current data block

Edit cursor navigation move and select

  • In the editing area, press alt+shift+left arrow key to move to the previous data block and select
  • In the editing area, press alt+shift+down key to move to the current data block and select
  • In the editing area, press alt+shift+right arrow to move to the next data block and select

Press alt+s in edit field to turn on or off the shortcut mode. When the shortcut mode is on, press f1~f12 to quickly insert LaTeX syntax. When the shortcut mode is on, press shift+f1~f12 to read out the LaTeX commands currently bound to the shortcut.

In edit field and the cursor is in the LaTeX block, press alt+i to enter navigation interactive mode

Press NVDA+shift+space in edit field to turn on or off the edit single letter navigation mode. When the edit single letter navigation mode is turned on, you can move the edit cursor with single letter navigation

The following keys by themselves jump edit cursor to the next available block, while adding the shift key causes them to jump edit cursor to the previous block:

  • l: move to the next LaTeX block
  • t: move to the next text block

mixed content example: The solution of the quadratic equation in one variable (ax2+bx+c=0) is (\frac{-b\pm\sqrt{b2-4ac}}{2a}).

settings

All Access8Math menus are centralized in tools -> Access8Math.

read feature settings

  • General Settings dialog:

    • Language: Access8Math speaking language
    • Przerwa między elementami: Ustawia czas przerwy między elementami wyrażany za pomocą wartości od 1 do 100. Im mniejsza wartość, tym krótszy czas przerwy, im większa wartość, tym dłuższy czas przerwy.
    • Showing Access8Math interaction window when entering interaction mode: Whether to show "Access8Math interaction window" when pressing the space key on the math object.
    • Analyze the mathematical meaning of the content: perform semantic analysis on the mathematical content, and when it meets a specific rule, using that rule to speak.
    • Reading pre-defined meaning in dictionary when navigating in interactive mode: When the pattern is definied in the dictionary, use dictionary to read the meaning of subpart in the upper layer part.
    • Reading of auto-generated meaning when navigating in interactive mode: When the pattern is not difined or incomplete in dictionary, use automatic generation function to read the meaning of subpart in the upper layer part.
    • Using a beep to alert no move: When navigating in interactive mode, It will hint by beep. If it is not checked, it will hint by speaking "no move".
    • Using NVDA+gesture to active action: Whether shortcut key needs to be added with NVDA key when write mixed content in edit field
  • Rule Settings dialog box: select whether rules are actived.

localization

  • "Unicode dictionary" allows customizing the reading method for each symbol text.
  • "Mathematics Rules" allows customizing the reading method for each type of mathematics.
  • "Add a new language" can add languages: that were not originally provided in the built-in. After adding, there will be more newly added language families in the general settings and can be used to define the reading method through the "unicode dictionary" and "mathematics rules" to reach localization

Reguły Matematyczne

Access8Math establishes 46 mathematical rules according to the mathematical type and logic to decide the reading math method and order. According to different local math reading logic, the math reading text and order can be changed. The method is as follows:

Edit: After entering the "math rule", the window lists 46 math rules. Choose any math rule and select the "Edit" to enter the editing entry.

"Edytowanie reguły" można podzielić na dwa główne bloki: "Układ podzielony" i "Rolę podrzędną".

  • Serialized ordering: Math rule is divided into multiple blocks according to the reading order. In this area, the reading order of child node and the delimitation text of start, inter- and the end can be changed. Taking the fractional rule mfrac as an example, this rule is divided into five reading blocks. The order 0, 2, and 4 represent the initial prompt, the project segmentation prompt, and the end prompt, respectively, and the meanings text can be changed in each field. Order 1 and 3 adjust the reading sequence of child node which can be changed in the drop-down menu.
  • Rola podrzędna to element następnego poziomu reguły matematycznej. Na przykład reguła ułamkowa mfrac zawiera licznik i mianownik. Podtreść w znaczeniu podtreści wyższej warstwy można zmieniać w polu roli węzła podrzędnego.

Przykładowo, można sprawdzić sposób odczytu tej reguły po jej edycji. Gdy klikniesz na zapis, otrzyma on odpowiadające mu reguły. Pozwala to potwierdzić, że obecny sposób odczytu jest zgodny z oczekiwanym.

Przywróć domyślne: Resetuje listę reguł matematycznych do ustawień początkowych.

Importuj: importuje pliki reguł, aby ułatwić ich ładowanie.

Eksportuj: Zapisuje pliki reguł w wybranej lokalizacji, co pozwala je udostępniać lub archiwizować.

example

Math contents in Wiki are all written by MathML.

  • Quadratic equation: https://en.wikipedia.org/wiki/Quadratic_equation
  • Mnożenie macierzy: https://pl.wikipedia.org/wiki/Mno%C5%BCenie_macierzy
  • Równanie sześcienne: https://pl.wikipedia.org/wiki/R%C3%B3wnanie_sze%C5%9Bcienne

Równanie kwadratowe

  • LaTeX: (ax2+bx+c=0)
  • MathML: -b±b2-4ac2a

github: https://github.com/tsengwoody/Access8Math

Będziemy wdzięczni za wszelkie nadesłane raporty i komentarze.

Access8Math v3.0 Update

  • Write mathematical content in AsciiMath
  • Write mathematical content in LaTeX
  • Writing mixed content (text content and mathematical content)
  • Use shortcut keys to move the cursor to different types of blocks in edit field
  • Use command menu to select commands in edit field
  • Set shortcuts in the LaTeX command menu
  • Review and export content in edit field to HTML

Access8Math v2.6 Update

  • Auto entering interactive mode when showing Access8Math interaction window.
  • You can choose how to hint no movement in interactive mode: beep or speech 'no move' two way.
  • The content of the current item will be repeated again When there is no movement.

Access8Math v2.5 Update

  • Adding Russian translation of rules and UI. Thanks to the translation work of Futyn-Maker.
  • Fixing compound symbol translation failed bug.
  • Removing duplicates of lowercase letters and added general uppercases in en unicode.dic(0370~03FF).

Access8Math v2.4 Update

  • Poprawka błędu.

Access8Math v2.3 Update

  • Compatibility with Python3
  • refactoring module and fix code style
  • Adding one symbol vector rule

Access8Math v2.2 Update

  • fix bug incorrect speech when a single node has more characters.
  • Fix compatibility issue in NVDA 2019.2, thanks to pull requests of CyrilleB79.
  • Fix bug in unicode dict has duplicate symbols.
  • Add translations in French, thanks to the translation work of CyrilleB79.
  • Adjust keyboard shortcut.

Access8Math v2.1 Aktualizacja

  • W "Ustawieniach Ogólnych" można wybrać, czy "okno interakcji Access8Math" ma być wyświetlane automatycznie przy wejściu w tryb nawigacji.
  • W trybie nawigacji "okno interakcji" można wyświetlić ręcznie za pomocą skrótu ctrl+m, jeśli "okno interakcji" nie pokaże się automatycznie.
  • Poprawiony został błąd przełączania wielu języków.
  • Add translations in Turkish, thanks to the translation work of cagri (çağrı doğan).
  • Aktualizacja zgodności dla nvda 2019.1 Sprawdź plik manifest.ini.
  • Ponowne przypisywanie dialogu kodu źródłowego.

Access8Math v2.0 Aktualizacja

  • Wprowadzone zostały wielojęzyczne ustawienia służące do dodawania i dostosowywania, a także trzy nowe okna "słownik unicode", "reguła matematyczna" i "dodawanie nowego języka"
  • "Słownik unicode" dostosowuje sposób odczytu każdego symbolu matematycznego.
  • "Reguła matematyczna" pozwala dostosować sposób odczytu i przejrzeć zmianę przed jej wprowadzeniem za pomocą przycisku Przykład.
  • "Dodawanie nowych języków" pozwala skorzystać z języków, których nie ma domyślnie w systemie. Zostają one dodane do ustawień ogólnych. Dzięki temu, można dostosować program do wspierania wielu języków przez odczyt definicji "słownika unicode" i "reguł matematycznych".
  • Ulepszony tryb nawigacji, klawisze numeryczne 7~9 mogą być używane do czytania sekwencji tekstu w linii.

Access8Math v1.5 dziennik aktualizacji

  • Do "ustawień ogólnych" dodano czas przerwy między elementami, wyrażany w wartościach od 1 do 100. Im mniejsza wartość, tym krótszy czas przerwy, im większa wartość, tym dłuższy czas przerwy.
  • Poprawiona konfiguracja dla wersji NVDA 2018.2.

Access8Math v1.4 dziennik aktualizacji

  • Dostosowanie okna ustawień. Dialog został podzielony na "ustawienia ogólne" i "ustawienia reguł" . "Ustawienia ogólne" to główny dialog "ustawień Access8Math" , a "ustawienia reguł" służą do włączania i wyłączania poszczególnych reguł.
  • Nowe reguły

    • Reguła wektora: Jeżeli bezpośrednio nad Identyfikatorem dwa znajduje się znak "⇀" , to cały element jest czytany jako "Wektor...".
    • frown rule:When there is a " ⌢ " right above two Identifier, the item is read as "frown...".
  • Poprawka błędu.

Access8Math v1.3 dziennik aktualizacji

  • Nowa reguła

    • Reguła liczby dodatniej: Czyta "dodatnie" zamiast "plus" kiedy znak plus w pierwszym elemencie lub poprzedzającym go elemencie jest pewnym operatorem.
    • Reguła kwadratu: Kiedy potęga wynosi 2, cały element jest czytany jako "do kwadratu".
    • Reguła sześcianu: Kiedy potęga wynosi 3, cały element jest czytany jako "do sześcianu".
    • Reguła prostej: Jeżeli bezpośrednio nad Identyfikatorem dwa znajduje się znak "↔" cały element jest czytany jako "Prosta ...".
    • Reguła odcinka: Jeżeli bezpośrednio nad Identyfikatorem dwa znajduje się znak "¯" cały element jest czytany jako "Odcinek ...".
    • Reguła półprostej: Jeżeli bezpośrednio nad Identyfikatorem dwa znajduje się znak "→" cały element jest czytany jako "Półprosta ..."
  • Add interaction window: Pressing "Space" in math content to open "Access8Math interaction window" which contains "interaction" and "copy" button.

    • Interakcja służy do poruszania się po zapisie matematycznym i przeglądania go.
    • Kopiuj: Kopiuje kod źródłowy obiektu MathML.
  • Dodano zh_CN UI language(.po).

  • Dopasowanie relacji dziedziczenia pomiędzy regułami, co zapewnia właściwe użycie odpowiednich reguł w przypadku konfliktu.
  • Poprawka błędu.

Access8Math v1.2 dziennik aktualizacji

  • Nowa reguła

    • Reguła liczby ujemnej: Czytanie 'ujemne' zamiast 'minus' kiedy znak minus jest operatorem w pierwszym elemencie lub poprzednim elemencie.
    • Reguła liczby całkowitej plus ułamek: Czytanie 'plus' między liczbą całkowitą a ułamkiem, kiedy poprzednią częścią ułamka jest liczba całkowita.
  • Ulepszono architekturę programu.

    • Dodano klasę sibling.
    • Dodano klasę dynamic generate Complement.
  • Poprawka błędu

Access8Math v1.1 dziennik aktualizacji

  • W trybie nawigacji, polecenie "Ctrl+c" kopiuje kod źródłowy obiektu MathML.
  • Ustawienia

    • Język: Język odczytu zapisów matematycznych w Access8Math
    • Analizuj matematyczne znaczenie zapisu: Analizuj zapis semantycznie, w linii zawierającej określone reguły matematyczne, czytaj zgodnie z matematycznym znaczeniem tych reguł.
    • Odczytuj wzór zdefiniowany w słowniku: Jeżeli dany wzór jest zdefiniowany w słowniku, używaj słownika do odczytywania znaczenia elementów większej części zapisu.
    • Odczytuj tworzone automatycznie: Jeżeli wzór nie jest zdefiniowany w słowniku lub jego definicja jest niekompletna, używaj funkcji automatycznego tworzenia do odczytywania elementów większej całości.
  • Dodawanie prostej reguły. Pojedyncze reguły to uproszczona wersja wielu reguł. Aby ułatwić odczytanie i zrozumienie zapisu, który składa się tylko z jednego elementu, można pominąć nieodczytywanie skryptu przed zapisem i po nim.

  • Zaktualizuj unicode.dic.
  • Poprawka błędu.