Selainnavigointi

Tämä lisäosa tarjoaa NVDA:n käyttäjille tehokkaita selaustilan navigointikomentoja. Se toimii verkkoselaimissa sekä muissa sovelluksissa, jotka tukevat NVDA:n selaustilaa (kuten Microsoft Word ja sähköpostiohjelmat).

Lataaminen

Asenna lisäosakaupan kautta.

Käyttö selaimissa ja muissa selaustilaa tukevissa ohjelmissa

Huomaa, että pystysuuntainen navigointi ja saman tyylin navigointikomennot ovat nyt käytettävissä NVDA:ssa versiosta 2024.2 alkaen. Sisäänrakennettujen komentojen käyttö on suositeltavaa. Niille ei ole määritetty oletusnäppäinkomentoja, joten käyttäjän on määritettävä ne Näppäinkomennot-valintaikkunasta.

Selainnavigointia voidaan käyttää ruudun vasemman reunan vaakasuuntaisen siirtymän ja fontin koon tai tyylin mukaan liikkumiseen.

  • Vaakasuuntaisen siirtymän mukaan liikuttaessa voidaan helposti etsiä sivulta kappaleita, jotka ovat pystysuunnassa tasattuja. Painamalla NVDA+Alt+Nuoli alas/ylös voidaan siirtyä seuraavaan tai edelliseen kappaleeseen, jolla on sama siirtymä. Tästä voi olla hyötyä esim. selattaessa hierarkkisia kommenttipuita (esim. Reddit.com) siirtymällä ensimmäisen tason kommenttien välillä ja ohittaen kaikki ylemmillä tasoilla olevat.
  • Fonttikoon mukaan liikuttaessa voidaan etsiä helposti kappaleet, jotka on kirjoitettu samalla, pienemmällä tai suuremmalla fontilla.
  • Fonttikoon mukaan on lisäksi mahdollista liikkua siten, että etsiminen rajoittuu samaan fontin tyyliin.

Selainnavigoinnin roottoria käytetään näiden vaihtoehtojen välillä vaihtamiseen. Roottorin asetuksesta riippuen Selainnavigointi ilmaisee äänimerkeillä nykyisen kohteen vaakasuuntaisen siirtymän tai fonttikoon. Lisäosa antaa myös pikanavigointikomentoja käytettäessä äänimerkin, joka ilmaisee, paljonko tekstiä ohitettiin (tämä ominaisuus on käytettävissä vain Google Chromessa ja Firefoxissa).

Selainnavigointi toimii kaikissa NVDA:n tukemissa selaimissa. Jotkin ominaisuudet eivät kuitenkaan välttämättä ole käytettävissä kaikissa selaimissa. Lisäosa toimii myös muissa selaustilaa tukevissa sovelluksissa, kuten Microsoft Wordissa ja sähköpostiohjelmissa.

Näppäinkomennot:

  • NVDA+Alt+Nuoli ylös/alas: Siirrä edelliseen tai seuraavaan kappaleeseen, jolla on sama vaakasuuntainen siirtymä tai fonttikoko.
  • NVDA+Alt+Home tai NVDA+Alt+Nuoli vasemmalle: Siirrä edelliseen kappaleeseen, jolla on pienempi siirtymä tai suurempi fonttikoko.
  • NVDA+Alt+End tai NVDA+Ctrl+Alt+Nuoli vasemmalle: Siirrä edelliseen kappaleeseen, jolla on pienempi siirtymä tai suurempi fonttikoko.
  • NVDA+Alt+Page down tai NVDA+Alt+Nuoli oikealle: Siirrä seuraavaan kappaleeseen, jolla on suurempi siirtymä tai pienempi fonttikoko.
  • NVDA+Alt+Page up tai NVDA+Ctrl+Alt+Nuoli oikealle: Siirrä edelliseen kappaleeseen, jolla on suurempi siirtymä tai pienempi fonttikoko.
  • NVDA+O: Vaihda roottorin asetusta vaakasuuntaisen siirtymän, fonttikoon tai fonttikoon ja -tyylin välillä.
  • \ tai Vaihto+\ (kenoviiva): Vieritä ylös tai alas tuodaksesi näkyviin kaikki sivun elementit. Tästä voi olla hyötyä kaikkien elementtien lataamisessa dynaamisilla verkkosivuilla sekä seuraavan sivun osan lataamisessa jatkuvaa vieritystä käyttävillä sivuilla.
  • NVDA+Vaihto+Nuoli vasemmalle: Siirry takaisin kohdistimen edelliseen sijaintiin nykyisessä asiakirjassa.
  • NVDA+E: Muokkaa osittain saavutettavien muokkauskenttien sisältöä. Katso alempaa vastaavaa kappaletta.
  • T tai Vaihto+T: Siirrä seuraavaan tai edelliseen taulukkoon, mutta sijoita kohdistin ensimmäiseen soluun. NVDA sijoittaa ko hdistimen toisinaan juuri ennen ensimmäistä solua, ja Selainnavigointi-lisäosa korjaa tämän.

Pikasiirtymiskirjanmerkit

Selainnavigoinnin pikasiirtymiskirjanmerkit ovat tehokas työkalu, joka mahdollistaa navigoinnin verkkosivuilla ja joidenkin toistuvien toimintojen automatisoinnin.

Kirjanmerkkien näppäinkomennot

  • NVDA+J: Avaa pikasiirtymisen ponnahdusvalikko.
  • J tai Vaihto+J: Siirrä seuraavaan tai edelliseen pikasiirtymiskirjanmerkkiin.
  • / ja Ctrl+/: Ottaa käyttöön Ohita sotku -tilan tai poistaa sen käytöstä liikuttaessa riveittäin ylä- ja alanuolilla ja kappaleittain Ctrl+ylä- ja Ctrl+alanuolilla.
  • Alt+J: Napsauta kaikkia pikanapsautuskirjanmerkkejä nykyisellä sivulla.
  • Ctrl+J: Puhu kaikki pikapuhekirjanmerkit nykyisellä sivulla.
  • Alt+1-Alt+0: Siirry seuraavaan hierarkkiseen kirjanmerkkiin numeroa vastaavalla tasolla. 0 vastaa tasoa 10. Kutsuu vaihtoehtoisesti numeerista skriptiä, mikäli se on määritetty.
  • Vaihto+Alt+1-Vaihto+Alt+0: Siirry edelliseen hierarkkiseen kirjanmerkkiin.
  • Alt+tai Vaihto+Alt+: Siirrä seuraavaan tai edelliseen hierarkkiseen kirjanmerkkiin millä tahansa tasolla.

Voit myös määrittää omat näppäinkomennot useimmille kirjanmerkeille (poikkeuksena Ohita sotku-, Hierarkkinen ja Numeerinen kirjoitus -kirjanmerkit).

Sivustot

Ensin on määritettävä se sivusto, jolle haluat luoda kirjanmerkkejä. Useimmissa tapauksissa täsmäyksen tyypiksi määritetään joko "Verkkoalue" tai "Verkkoalue ja sen aliverkkoalueet". Jälkimmäisen vaihtoehdon havainnollistamiseksi voit määrittää seuraavasti:

  • URL: amazon.com
  • Täsmäyksen tyyppi: Verkkoalue ja sen aliverkkoalueet
  • Tämä täsmää amazon.com-, smile.amazon.com- ja kaikkiin muihin *.amazon.com-verkkoalueisiin.

Mikäli tarvitset tarkempia säätöjä, voit määrittää myös tarkan URLin tai käyttää säännöllistä lauseketta sen määrittämiseen.

Tällaisen joustavan määrityksen vuoksi aktiivisena voi olla useita pikasiirtymisen sivustoja.

Kirjanmerkkityypit

Kun sivustomääritykset on tehty, voit jatkaa määrittämällä kirjanmerkit.

Selainnavigointi tukee useita kirjanmerkkityyppejä:

  • Pikasiirtymiskirjanmerkit: Niihin voidaan siirtyä painamalla J tai Vaihto+J.
  • Sotkunohituskirjanmerkit: Nämä kirjanmerkit ohitetaan automaattisesti riveittäin (Nuoli ylös/alas) tai kappaleittain (Ctrl+Nuoli ylös/alas) liikuttaessa. Tämä mahdollistaa verkkosivujen sotkun, kuten tyhjien rivien, aikaleimojen ja muun tarpeettoman tiedon piilottamisen. Tietoja ei poisteta kokonaan. Sotkunohitus voidaan poistaa käytöstä tilapäisesti komennoilla / tai Ctrl+/. Sotkunohitus ohittaa oletusarvoisesti tyhjät kappaleet kaikilla verkkosivuilla.
  • Pikanapsautuskirjanmerkit: Voit merkitä napsautettavia elementtejä, kuten linkkejä, painikkeita tai valintaruutuja pikanapsautuskirjanmerkeiksi. Tämän jälkeen voit painaa Alt+J:llä samanaikaisesti kaikkia pikanapsautuskirjanmerkkejä siirtämättä kohdistinta. Tästä voi olla hyötyä verkkosivulla olevan, säännöllisesti käytettävän painikkeen, kuten YouTuben Toista- tai videokokoussivustojen Mykistä-painikkeen painamisessa.
  • Pikapuhekirjanmerkit: Voit lukea tämän tyyppiset kirjanmerkit painamalla näppäinyhdistelmää Ctrl+J. Kohdistin ei liiku. Tämä on kätevä tapa tarkistaa sivun usein muuttuvat elementit. Voit myös määrittää pikanapsautuskirjanmerkin automaattisesti päivittyväksi, jolloin Selainnavigointi skannaa sivua säännöllisesti ja lukee muutokset, mikäli täsmäytettävä teksti muuttuu.
  • Hierarkkiset kirjanmerkit: Nämä ovat samankaltaisia kuin pikasiirtymiskirjanmerkit, mutta ottavat lisäksi huomioon kirjanmerkin sisennyksen. Sellaisilla sivustoilla kuin Reddit ja Hacker News on hierarkkinen kommenttipuu, joka oli ruudunlukijoiden käyttäjille melko haastava navigoida. Tällaisilla verkkosivuilla voit merkitä kommentit hierarkkiseksi kirjanmerkiksi, jonka jälkeen voit navigoida niiden välillä painamalla Alt+numero tai Vaihto+Alt+numero, jossa numero on näppäimistön numerorivin numero väliltä 1–0, joka tarkoittaa kommentin tasoa. Tähän lisäosaan on oletusarvoisesti määritetty hierarkkiset kirjanmerkit Hacker News- ja old.reddit.com-sivustoille. Niitä oli kuitenkin liian vaikeaa määrittää modernille reddit.comille, koska siellä ei näytä olevan helposti etsittävää kappaletta, josta kommentit voisi tunnistaa.
  • Skriptikirjanmerkit: Suorita annettu skripti, kun sitä kutsutaan.
  • Numeroskripti: Paina Alt+0-Alt+9 suorittaaksesi skriptin, joka ottaa syötteenä numeron. Tämä voi olla kätevä esimerkiksi siirryttäessä sivulla numeroa vastaavaan kirjanmerkkiin yhdellä näppäimen painalluksella.

Uuden kirjanmerkin luominen

Kun sivusto on määritetty, helpoin tapa uuden kirjanmerkin luomiseen on siirtyä asiakirjassa haluttuun kappaleeseen, avata kirjanmerkkien pikavalikko painamalla NVDA+J ja valita Kirjanmerkit > Luo uusi kirjanmerkki sivustolle ...

Tämän jälkeen avautuu määritysvalintaikkuna, jossa kirjanmerkkiä voidaan mukauttaa. Voit muuttaa sitä, miten tekstiä täsmäytetään (esim. merkkijonotäsmäytys tai säännöllinen lauseke).

Tämän valintaikkunan muut vaihtoehdot:

  • Kategoria: Määrittää kirjanmerkin tyypin.
  • Näyttönimi: Valinnainen kirjanmerkin nimi luettavuuden parantamista varten. Tämä antaa vain paremman nimen, jotta kirjanmerkin tunnistaminen on helpompaa pitkästä luettelosta.
  • Puhuttu ilmoitus kirjanmerkin löytyessä: Valinnainen ilmoitus, joka puhutaan aina, kun kyseinen kirjanmerkki löytyy asiakirjasta.
  • Kappaleiden siirtymä: Kun vastaava teksti on löytynyt, Selainnavigointi siirtää kohdistinta näin monta kappaletta eteen- tai taaksepäin. Tästä voi olla hyötyä esim. silloin, kun haluat siirtyä kohdetekstiin, jossa ei ole yhteistä tekstiä, jota voisi etsiä (esim. keskusteluviesti), mutta edeltävä kappale sisältää etsittävän sanan (esim. tykkää). Tässä tapauksessa voit etsiä "tykkää"-sanan ja määrittää siirtymäksi 1, jolloin kohdistin sijoittuu viestin ensimmäiseen kappaleeseen "tykkää"-sanan asemesta.
  • Attribuutit: Välilyönneillä erotettu luettelo etsittävistä kappaleiden attribuuteista. Luettelo nykyisen kappaleen käytettävissä olevista attribuuteista on seuraavassa lomakekentässä. Attribuuttien luettelo on esitäytetty joillakin yleisillä rooleilla, eikä sitä yleensä tarvitse muokata.
  • Käytettävissä olevat attribuutit nykyisessä kappaleessa: Tässä ovat kaikki nykyisestä kappaleesta löydetyt attribuutit. Voit valita ja lisätä ne etsittävien attribuuttien luetteloon painamalla välilyöntiä.

Sivuston lisäasetukset

Sivustonmääritysvalintaikkunassa voit määrittää muutamia lisäasetuksia:

  • Näyttönimi: Valinnainen näyttönimi sivustolistan luettavuuden parantamiseksi.
  • Kohdistustila: Tämä mahdollistaa NVDA:n oletusarvoisen kohdistustapahtumien käsittelyn ohittamisen. Kohdistustapahtumia käytetään virheellisesti tietyillä verkkosivustoilla. Jotta niitä käytettäisiin asianmukaisemmin, voit joko ohittaa kohdistustapahtumat tai vaihtoehtoisesti poistaa käytöstä automaattisen vuorovaikutustilaan vaihtamisen, kun kohdistustapahtuma vastaanotetaan.
  • Aktiivisten alueiden tila: Aktiivisia alueita käytetään virheellisesti tietyillä verkkosivustoilla. Tällä asetuksella niiden puhuminen voidaan poistaa käytöstä vain nykyisellä sivustolla.
  • Virheenjäljityksen äänimerkkitila: Tästä on hyötyä enimmäkseen vain virheenjäljityksessä. Voit saada NVDA:n antamaan äänimerkin tietyn tapahtuman (kohdistus, aktiivisen alueen päivittyminen tai onnistunut pikanapsautus) aikana.

Skriptaus

Selainnavigointi v2.5:stä alkaen voit mukauttaa kirjanmerkkejäsi Python-skripteillä. Skriptausta voidaan käyttää kahteen tarkoitukseen:

  1. Täsmäytysalgoritmin parantamiseen, kun olemassa olevat vaihtoehdot eivät riitä. Tämä koskee pikasiirtymis-, pikapuhe-, pikanapsautus-, hierarkkisia ja sotkunohituskirjanmerkkejä.
  2. Mielivaltaisen Python-koodin suorittamiseen tiettyjen toimintojen automatisoimiseksi verkkosivuilla. Tämä voidaan tehdä skripti- tai numeerinen Skripti -kirjanmerkkien avulla.

Skriptausrajapinta

Voit käyttää skripteissä seuraavia muuttujia:

  • p: nykyinen kappale. Tämä on instanssi Paragraph-luokasta, joka on määritelty tiedostossa paragraph.py
  • t: nykyinen textInfo-objekti.

Kappaleiden hyödyntäminen on suositeltavaa, koska ne tarjoavat korkeamman tason liitännän kuin textInfot.

Skriptisi on päätettävä, löytääkö mukautettu sääntösi nykyisen kappaleen vastaavuutena vai ei. Voit joko:

  • Palauttaa arvon True, mikäli vastaavuus löytyi, muutoin False.
  • Palauttaa arvon None tai jättää return-lauseen pois ilmaisemaan, ettei vastaavuutta löytynyt.
  • Palauttaa kokonaisluvun i ilmaisemaan, että seuraava i. tai edeltävä i. kappale on löytynyt vastaavuus ja se on puhuttava nykyisen kappaleen sijaan.
  • Palauttaa monikon (i: int, s: str) osoittamaan löytyneen vastaavuuden, jossa on siirtymä (katso edellinen kohta) ja antaa Selausnavigoinnin puhua ilmoituksen s.
  • Kutsumalla match()-funktiota osoittamaan löytyneen vastaavuuden. Tämä funktio aktivoi sisäisen virhekäsittelijän, joten skriptin suoritus keskeytyy match-kutsun jälkeen. Funktio on määritelty seuraavasti:

      def match(offset: int | TextInfo | Paragraph = None, message: str = None) -> None:
    

Voit myös tuoda moduuleja ja kirjoittaa yleiskäyttöisiä skriptejä.

Voit käyttää print()-lausetta skriptisi virheiden etsintään: tuloste näkyy NVDA:n lokissa.

Skriptiesimerkkejä

  1. Tämä skripti tarkistaa, että nykyinen kappale on linkki ja että edellisen otsikkotason 5 teksti alkaa nykyisen kappaleen tekstillä:

     try:
         if controlTypes.Role.LINK in p.roles and p.previousHeading5.textInfo.text.startswith(p.text):
             print(f"pp5 {p.previousHeading5.textInfo.text}")
             return True
     except NotFoundError:
         return None
    
  2. Tämä skripti ei etsi vastinetta, vaan aktivoi viimeisen sivulla olevan muokkauskentän:

     p.end.previous.previousEdit.activate()
    
  3. Tämä skripti etsii käyttäjänimen, joka voi olla yhden tai kahden kappaleen päässä. Tämän jälkeen se etsii kommentin alkamiskohdan analysoimalla fonttikokoa. Sitten se etsii kommentin loppumiskohdan etsimällä tekstiä "Reply". Tämän jälkeen se etsii koko kommentin sisällön ja lisää käyttäjänimen puhuttavaksi ennen löytynyttä tekstiä:

     user = p.next
     if user.text == "downvote":
         user = user.next
     try:
         username = user.text.split()[0]
     except IndexError:
         username = '?'
     pp = p
     begin = None
     for i in range(5):
         fs = pp.attributes.get(ParagraphAttribute.FONT_SIZE, [])
         #print(f"i={i} fs={fs}")
         if '9_pt' in fs:
             begin = pp
             break
         pp = pp.next
     else:
         return
     end = begin
     while end.text != 'reply':
         end = end.next
     match(textInfoRange(begin, end), username)
    
  4. Tämä skripti on generaattori, mikä tarkoittaa, että se tuottaa arvon, joka määrittää odotusajan ennen seuraavan rivin suorittamista. Skripti suoritetaan taustasäikeessä ei-estävällä tavalla.

    Tämä skripti suorittaa toimintosarjan:

    • Etsii painikkeen annetulla nimellä ja painaa sitä.
    • Avaa esiin tulevan valintaikkunan: p.home.nextEmbeddedObject.activate()
    • Etsii valintaikkunasta äskettäin kohdistetun elementin: d = getFocusParagraph()
    • Etsii valintaikkunasta valintaruudun ja valitsee sen.
    • Etsii valintaikkunasta toisen painikkeen nimen perusteella ja painaa sitä.

    Nämä vaiheet toistetaan 20 kertaa retry-funktion avulla. 500 millisekunnin tauon jälkeen skripti etsii "Run Query" -painikkeen ja painaa sitä.

     def waitForDialogAndClickCheckbox():
         try:
             p.home.find("Link Last Used").activate()
             p.home.nextEmbeddedObject.activate()
         except NotFoundError:
             pass
         d = getFocusParagraph()
         c = d.home.nextCheckBox
         if controlTypes.State.CHECKED not in c.obj.states:
             c.activate() 
         d.home.find("Link QCPR Project").activate()
    
     yield from retry(waitForDialogAndClickCheckbox, count=20)
     yield 500
     yield from retry(lambda: p.home.find("Run Query").activate(), count=10)
    
  5. Tämä on numeerinen skripti, sillä se ottaa syöteparametriksi level-muuttujan. Skripti etsii level:nnen muokkauskentän sivun alusta (tai lopusta, jos level on negatiivinen) ja suorittaa siinä script_editJupyter-funktion.

     if level > 0:
         p = p.home
         for i in range(level):
             p = Paragraph(p.nextEdit.textInfo)
     elif level <= 0:
         level = 1-level
         p = p.end.previous
         tones.beep(500, 50)
         for i in range(level):
             p = Paragraph(p.previousEdit.textInfo)
         else:
             tones.beep(500, 50)
     p.textInfo.obj.currentFocusableNVDAObject = p.textInfo.focusableNVDAObjectAtStart
     p.textInfo.obj.script_editJupyter(None)
    

Asetukset

Kirjanmerkkimääritykset tallennetaan tiedostoon browserNavRules.json NVDA:n asetushakemistossa. Voit muokata sitä käsin tai jakaa sen jollekulle.

NVDA:n asetushakemisto löytyy avaamalla Käynnistä-valikko ja kirjoittamalla: Selaa käyttäjän asetushakemistoa.

Lisäosan mukana tulee oletusasetustiedosto, jossa on kirjanmerkkien esimerkkejä.

Osittain saavutettavien muokkausruutujen sisällön muokkaaminen

Useat modernit verkkosovellukset, erityisesti Jupyter muiden muassa, käyttävät muokkausruutuja, jotka eivät ole kovin saavutettavia. Ne esim. näyttävät tyhjiltä, mutta voit kuitenkin kopioida tekstiä niihin ja niistä käyttäen Ctrl+A-, Ctrl+C- ja Ctrl+V-näppäinkomentoja.

Selainnavigointi tarjoaa kokeellisen toiminnon, joka mahdollistaa tällaisten muokkausruutujen sisällön muokkaamisen kätevämmin. Käytä tätä toimintoa seuraavasti:

  1. Etsi selainikkunasta muokkausruutu.
  2. Paina NVDA+E.
  3. Näkyviin tulee uusi ikkuna, jossa kyseisen muokkausruudun sisältö näytetään.
  4. Muokkaa sisältöä tässä ikkunassa.
  5. Kun olet valmis, sulje saavutettava muokkausikkuna ja päivitä muokkausruudun sisältö verkkosivulla painamalla Esc-näppäintä.
  6. Vaihtoehtoisesti voit painaa Ctrl+Enter-, Vaihto+Enter- tai Alt+Enter-näppäinyhdistelmää. Tämä sulkee muokkausikkunan, päivittää muokkausruudun ja välittää näppäinkomennon verkkosovellukselle.
  7. Sulje muokkausikkuna tallentamatta muutoksia painamalla Alt+F4.
  8. Mikäli aiemmin muokattu tekstisisältö katoaa, kopioi se leikepöydälle painamalla NVDA+Ctrl+E.

Huomautuksia:

  • Älä muuta selaimen tilaa, esim. vaihda välilehteä tai siirrä kohdistusta muihin välilehdellä oleviin elementteihin muokkausikkunan ollessa avoinna. Tämä estää Selainnavigointia päivittämästä muokkausruudun tekstiä oikein.
  • Varmista, että vapautat Ctrl-, Vaihto- tai Alt-näppäimen nopeasti painettuasi Ctrl+Enter, Vaihto+Enter tai Alt+Enter. Niiden pitäminen painettuna yli sekunnin ajan voi aiheuttaa ongelmia.
  • Tämä toiminto on tällä hetkellä kokeellinen. Odotettavissa on noin 90-95 prosentin toimivuus.
  • Toiminto on testattu perusteellisesti Google Chromessa ja Firefoxissa. Se saattaa toimia muissakin selaimissa, mutta tällöin on suurempi mahdollisuus ongelmiin, kuten tietojen menetykseen.

Lähdekoodi

Lähdekoodi on saatavilla osoitteessa http://github.com/mltony/nvda-indent-nav.