NVDA (NonVisual Desktop Access) on ilmainen, avoimen lähdekoodin näytönlukija Microsoft Windowsille.Sen on kehittänyt NV Access yhteistyössä maailmanlaajuisen osallistujayhteisön kanssa.Jos haluat lisätietoja NVDA:sta tai ladata kopion NVDA:sta, vieraile NV Accessin verkkosivulla.
Huomioi seuraavaa: NVDA-hankkeella on kansalaisille ja osallisille laaditut käytännesäännöt. NV Access odottaa, että kaikki osallistujat ja muut yhteisön jäsenet lukevat ja noudattavat tässä asiakirjassa esitettyjä sääntöjä osallistuessaan tai osallistuessaan tähän projektiin.
- Hae tukea
- Dokumentaatio
- Viestintäkanavat
- Muita tärkeitä projektilinkkejä
- Lähdekoodin hankkiminen
- Riippuvuudet
- Asennetut riippuvuudet
- Git-alimoduulit
- Python-riippuvuudet
- Lähdepuun valmistelu
- NVDAHelperin kääntäminen debuggausasetuksilla
- Lähdekoodin ajaminen
- NVDA:n rakentaminen
- Asennusohjelman rakentaminen
- Kehittäjän dokumentaation luominen
- Luo virheenkorjaussymbolien arkisto
- Käännösmallin luominen
- Rakennuksen mukauttaminen
- Automaattisten testien suorittaminen
- Yksikkötestit
- Käännettävien merkkijonojen tarkistukset
- Linting your changes
- Yksikkötestit
- Järjestelmätestit
- NVDA:n tukeminen
Hae tukea
Jos olet aloittelija, edistynyt käyttäjä, uusi tai pitkäaikainen kehittäjä, tai jos olet organisaatio, joka haluaa tietää lisää tai osallistua NVDA:n kehitykseen, voit saada tukea käytössä olevasta dokumentaatiosta sekä useista NVDA-näytönlukulaitteelle omistetuista viestintäkanavista. Tässä on katsaus tärkeimpiin tukilähteisiin.
Dokumentaatio
- NVDA User Guide
- NVDA Developer Guide
- NVDA Add-ons Development Internals
- NVDA ControllerClient manual
- Lisäistä dokumentaatiota on tämän arkiston wikissä ja yhteisön wikissä
- NVDA Users Mailing List
- NVDA Developers Mailing List
- NVDA Add-ons Mailing List
- Instant Messaging channel for NVDA Support
- Muut lähteet, kuten ryhmät ja profiilit sosiaalisen median kanavissa, kielikohtaiset verkkosivustot ja postituslistat jne.
Voit saada tukea myös suoraan NV Accessilta. Katso lisätietoja NV Accessin verkkosivuilta.
Muita tärkeitä projektilinkkejä
- NVDA GitHubissa
- NVDA:n ongelmat GitHubissa: Vikailmoitukset, ominaisuuspyynnöt jne.
- NVDA-kehityksen tilannekuvat: Automaattisesti luodut buildit projektista sen tämänhetkisessä kehitysvaiheessa
- NVDA-lisäosat: Hanki lisäosia NVDA:n parantamiseksi
- NVDA Add-ons -koordinointi- ja tukikeskus: Kaikki NVDA:n lisäosaympäristöstä
- NVDA Add-ons Template: Arkisto Add-ons-mallin luomista varten
- NVDA:n kääntäminen: Tietoa NVDA:n kääntämisestä toiselle kielelle
- NVDA Controller Client (2010-02-19): NVDA API ulkoisille sovelluksille, joilla voidaan suoraan puhua tai pistekirjoittaa viestejä jne.
- Contributing to NVDA: Ohjeet NVDA:n lähdekoodiin osallistumisesta
- NVDA commits -sähköpostilista: Ilmoitukset kaikista Git-tietovarastoon tehdyistä kommitoinneista
- Vanhat sähköpostiarkistot: Sisältävät keskusteluja NVDA:n kehityksestä
Lähdekoodin hankkiminen
NVDA-projekti käyttää Git-versiohallintajärjestelmää lähdekoodiinsa ja dokumentaatioonsa.
NVDA:n Git-tietovarasto sijaitsee osoitteessa https://github.com/nvaccess/nvda.git. Voit kloonata sen seuraavalla komennolla, joka sijoittaa tiedostot hakemistoon nimeltä nvda
:
git clone --recursive https://github.com/nvaccess/nvda.git
Vaihtoehtoa --recursive
tarvitaan erilaisten käyttämiemme Git-alamoduulien hakemiseen.
Riippuvuudet
NVDA:n lähdekoodi on riippuvainen useista muista paketeista toimiakseen oikein.
Asennetut riippuvuudet
Seuraavat riippuvuudet on asennettava järjestelmääsi:
- Python, versio 3.8, 32-bittinen
- Käytä viimeisintä pientä versiota, jos se on mahdollista.
- Microsoft Visual Studio 2019 Community, versio 16.3 tai uudempi:
- Lataa osoitteesta https://visualstudio.microsoft.com/vs/
- Visual Studion asennuksen yhteydessä sinun on otettava käyttöön seuraavat toiminnot:
- Työkuorma-välilehdellä
- Windows-ryhmässä:
- Työpöytäkehitys C++:lla
- Sitten Asennustiedot-osiossa, kohdassa Työpöytä C++:lle, Valinnainen ryhmittely, varmista, että seuraavat on valittu:
- MSVC v142 – VS 2019 C++ x64/x86 -rakentamistyökalut
- Windows 10 SDK (10.0.19041.0)
- C++ ATL for v142 build tools (x86 & x64)
- C++ Clang tools for Windows
- Windows-ryhmässä:
- Varmista Yksittäiset komponentit -välilehdellä, että seuraavat kohteet on valittu:
- MSVC v142 – VS 2019 C++ ARM64 -rakennustyökalut
- C++ ATL for v142 -rakennustyökalut (ARM64)
- Työkuorma-välilehdellä
Git-alimoduulit
Joissakin riippuvuussuhteissa on Git-alimoduulit.Jos et antanut --recursive
-vaihtoehtoa git-kloonaukselle, sinun on suoritettava git submodule update --init
.Aina kun vaaditun alamoduulin commit muuttuu (esim. git pullin jälkeen), sinun on ajettava git submodule update
.Jos et ole varma, suorita git submodule update
jokaisen git pullin, mergen tai checkoutin jälkeen.
Viitteeksi, seuraavat ajoaikariippuvuudet sisältyvät Git-alimoduuleihin:
- eSpeak NG, versio 1.51-dev commit 53915bf0a
- Sonic, commit 4f8c1d11
- IAccessible2, commit cbc1f29631780
- liblouis, versio 3.17.0
- Unicode Common Locale Data Repository (CLDR), versio 38.1
- NVDA-kuvat ja -äänet
- Adobe Acrobatin esteettömyysrajapinta, versio XI
- MinHook, merkitty versio 1.2.2
- brlapi Python-sidokset, versio 0.8 tai uudempi, jaetaan BRLTTY:n Windows-versiossa 6.1
- lilli.dll, versio 2.1.0.0
- Python-rajapinta FTDI-ajurille/sirulle
- Java Access Bridge 32-bittinen, Zulu Community OpenJDK build 13.0.1+10Zulu (13.28.11)
Lisäksi seuraavat rakentamisaikaiset riippuvuudet sisältyvät miscDeps git-alamoduuliin:
- txt2tags, versio 2.5
- Nulsoft Install System, versio 2.51
- NSIS UAC plug-in, versio 0.2.4, ansi
- xgettext ja msgfmt GNU gettextistä
- Boost Optional (stand-alone header), commitista 3922965
Seuraavat riippuvuudet eivät ole useimpien ihmisten tarvitsemia, eikä niitä sisällytetä Git-alamoduuleihin:
-
Kehittäjän dokumentaation tuottaminen nvdaHelperille: Doxygen Windows-asennusohjelma, versio 1.8.15:
-
Kun käytät mieluiten Visual Studio Codea integroituna kehitysympäristönä, voit hyödyntää esitäytettyä työtilan kokoonpanoamme Visual Studio Codea varten.Vaikka tätä VSCode-projektia ei ole sisällytetty NVDA-arkistoon alamoduulina, voit helposti tarkistaa työtilan konfiguraation arkistossasi suorittamalla seuraavan komennon arkiston juuresta.
git clone https://github.com/nvaccess/vscode-nvda.git .vscode
Python-riippuvuudet
NVDA:n ja sen rakentamisjärjestelmän riippuvuus riippuu myös laajasta luettelosta Python-paketteja. Ne on lueteltu kaikkine versioineen tämän arkiston juuressa olevassa requirements.txt-tiedostossa. Rakennusjärjestelmä huolehtii kuitenkin itse näiden hakemisesta tarvittaessa. nämä paketit asennetaan eristettyyn Python-virtuaaliympäristöön tässä arkistossa, eivätkä ne vaikuta koko järjestelmän laajuiseen pakettijoukkoon.
Lähdepuun valmistelu
Ennen kuin voit ajaa NVDA:n lähdekoodia, sinun täytyy valmistella lähdepuu. teet tämän avaamalla komentorivin, vaihtamalla NVDA:n lähdekoodijakelun juureen ja kirjoittamalla:
scons source
Tämä on syytä tehdä uudestaan aina, kun comtypesin versio muuttuu tai kielitiedostoja lisätään tai muutetaan.Huomaa, että jos haluat käyttää käyttäjädokumentaatiota ohjevalikosta lähdekoodiversiota käyttäessäsi, sinun on myös lisättävä user_docs
komentoriville näin:
scons source user_docs
Kun vain testaat tai teet muutoksia, voi olla nopeampaa yleensä vain tehdä scons source
, koska käyttäjädokumentaatio muuttuu aina, kun versionumero muuttuu.
NVDAHelperin kääntäminen debuggausasetuksilla
Muun muassa lähdepuun valmistelu rakentaa NVDAHelper-kirjastot.Jos yrität debugata nvdaHelperiä, voit kontrolloida erilaisia debuggausvaihtoehtoja rakentamalla komentorivimuuttujien nvdaHelperDebugFlags
ja nvdaHelperLogLevel
avulla.
Muuttuja nvdaHelperLogLevel
määrittää haluamasi loggauksen tason (0-59), matalampi taso on tarkempi. Oletusarvo on 15.
Muuttuja nvdaHelperDebugFlags
ottaa yhden tai useamman seuraavista lipuista:
- debugCRT: kirjastot linkitetään debug C-ajoaikaa vastaan ja väitteet otetaan käyttöön. (Oletusarvoisesti käytetään normaalia CRT:tä ja väitteet ovat pois käytöstä.)
- RTC: ajonaikaiset tarkistukset (pinon korruptoituminen, alustamattomat muuttujat jne.) otetaan käyttöön. (Oletuksena ei ole mitään ajonaikaistarkistuksia.)
- analyze: suorittaa MSVC-koodianalyysin kaikelle nvdaHelper-koodille ja holtittuu kaikista varoituksista. (oletusarvo on ei analyysiä).
Erikoisavainsanoja none ja all voidaan käyttää myös yksittäisten lippujen sijasta.
Seuraavana esimerkkinä on esimerkki, joka ottaa käyttöön debug CRT- ja runtype-tarkastukset
scons source nvdaHelperDebugFlags=debugCRT,RTC
Symboli pdb-tiedostot tuotetaan aina rakentamisen yhteydessä debug-lippujen valinnasta riippumatta.Niitä ei kuitenkaan sisällytetä NVDA-jakeluun.sen sijaan scons symbolsArchive
paketoi ne erilliseksi arkistoksi.
Buildit eivät myöskään oletusarvoisesti käytä mitään kääntäjän optimointeja.katso avainsana-argumentista release
, mitä kääntäjän optimointeja se ottaa käyttöön.
Lähdekoodin ajaminen
NVDA:ta on mahdollista ajaa suoraan lähdekoodista ilman, että tarvitsee rakentaa koko binääripakettia ja launcheria.Käynnistääksesi NVDA:n lähdekoodista cmd.exe
:n avulla suorita runnvda.bat
arkiston juuressa.
Voidaksesi katsoa ohjeen argumenteista, joita NVDA hyväksyy, käytä -h
– tai --help
-ehtoa.Nämä argumentit on dokumentoitu myös käyttöoppaassa.
NVDA:n rakentaminen
NVDA:n binäärirakennetta voidaan ajaa järjestelmässä, johon ei ole asennettu Pythonia ja kaikkia muita NVDA:n riippuvuuksia (kuten teemme tilannekuvia ja julkaisuja varten).
Binääriarkistoja ja -paketteja voidaan luoda scons-ohjelmalla NVDA:n lähdekoodin lähdekoodin jakelussa olevasta juuresta. Jos haluat rakentaa mitä tahansa seuraavista, avaa komentorivi ja vaihda tähän hakemistoon.
Tehdäksesi ei-arkistoidun binäärirakennuksen (vastaa purettua siirrettävää arkistoa) kirjoita:
scons dist
Rakennus luodaan dist-hakemistoon.
Asennusohjelman rakentaminen
Luoaksesi launcher-arkiston (yksi suoritettava tiedosto, joka mahdollistaa asennuksen tai kannettavan dist:n tuottamisen), kirjoita:
scons launcher
Arkisto sijoitetaan tulostushakemistoon.
Kehittäjän dokumentaation luominen
Luoaksesi NVDA-kehittäjän oppaan, kirjoita:
scons developerGuide
Kehittäjän opas sijoitetaan tulostushakemiston devDocs
-kansioon.
Luoaksesi HTML-pohjaisen lähdekoodin dokumentaation, kirjoita:
scons devDocs
Dokumentaatio sijoitetaan tulostushakemiston NVDA
-kansioon.
Kehittäjädokumentaation tuottamiseksi nvdaHelperille (ei sisälly devDocs-kohteeseen):
scons devDocs_nvdaHelper
Dokumentaatio sijoitetaan tulostushakemiston devDocs\nvdaHelper
-kansioon.
Luo virheenkorjaussymbolien arkisto
Luoaksesi arkiston virheenkorjaussymboleista eri dll/exe-binääreille kirjoita:
scons symbolsArchive
Arkisto sijoitetaan tulostushakemistoon.
Käännösmallin luominen
Luoaksesi gettext-käännösmallin (kääntäjiä varten), kirjoita:
scons pot
Rakennuksen mukauttaminen
Vaihtoehtoisesti rakennusta voidaan mukauttaa antamalla muuttujia komentorivillä:
- version: Tämän buildin versio.
- release: Onko kyseessä julkaisuversio.
- Tämä mahdollistaa erilaiset C++-kääntäjän optimoinnit, kuten /O2 ja koko ohjelman optimoinnin.
- Se myös ohjeistaa Pythonia tuottamaan optimoitua tavukoodia.
- publisher: Tämän buildin julkaisija.
- certFile: Varmentetiedosto, jolla suoritettavat tiedostot allekirjoitetaan. Varmenteen on oltava pfx-muodossa ja sen on sisällettävä yksityinen avain.
- certPassword: Allekirjoitusvarmenteen yksityisen avaimen salasana. Jos se jätetään pois, salasanaa ei oleteta.
- certTimestampServer: Aikaleimauspalvelimen URL-osoite, jota käytetään autenttisten allekirjoitusten aikaleimaamiseen. Jos se jätetään pois, allekirjoituksia ei aikaleimataan.
- outputDir: Hakemisto, johon lopulliset rakennetut arkistot ja vastaavat sijoitetaan.
- targetArchitectures: Kohdearkkitehtuurit, joita NVDA:n tulisi tukea. Mahdollisia arvoja ovat all, x86 ja x86_64. Tämä kannattaa yleensä jättää oletusarvoksi.
Voit esimerkiksi rakentaa launcherin tietyllä versiolla kirjoittamalla:
scons launcher version=test1
Lisäksi katso sconstruct
-tiedosto.
Automaattisten testien suorittaminen
Jos teet muutoksia NVDA:n koodiin, sinun kannattaa suorittaa NVDA:n automaattiset testit.Nämä testit auttavat varmistamaan, että koodimuutokset eivät vahingossa katkaise toiminnallisuutta, joka on toiminut aiemmin.
Testien suorittamiseksi (yksikkötestit, käännettävien merkkijonojen tarkistukset) vaihda ensin hakemisto NVDA:n lähdejakelun juurihakemistoon kuten edellä.Suorita sitten:
scons tests
Yksikkötestit
Jos haluat suorittaa vain tiettyjä yksikkötestejä, määrittele ne komentorivin unitTests
-muuttujan unitTests
avulla.Testit tulee antaa pilkulla erotettuna listana.Kukin testi tulee määritellä Python-moduulina, -luokkana tai -metodina suhteutettuna tests\unit
-hakemistoon.Jos haluat esimerkiksi ajaa vain TestMove
– ja TestSelection
-luokkien metodit tiedostossa tests\unit\test_cursorManager.py
, suorita tämä komento:
scons tests unitTests=test_cursorManager.TestMove,test_cursorManager.TestSelection
Käännettävien merkkijonojen tarkistukset
Jos haluat ajaa vain käännettävien merkkijonojen tarkistukset (jotka tarkistavat, että kaikissa käännettävissä merkkijonoissa on kääntäjäkommentit), suorita:
scons checkPot
Linting your changes
Voidaksesi varmistaa, että muutoksesi ovat NVDA:n koodaustyylin mukaisia, voit ajaa Flake8-lintterin paikallisesti.Jotkut kehittäjät ovat pitäneet tiettyjä linting-virheilmoituksia harhaanjohtavina, nämä on selvitetty kohdassa tests/lint/readme.md
.runlint.bat käyttää Flake8:a tarkastamaan vain erot työhakemistosi ja määritellyn base
-haaran välillä.Jos luot Pull Requestin, tässä käyttämäsi base
-haaran pitäisi olla sama kuin kohde, jota käyttäisit Pull Requestissa. Useimmissa tapauksissa se on origin/master
.
runlint origin/master
Voidaksesi saada varoituksen linting-virheistä nopeammin, saatat haluta integroida Flake8:n muihin käyttämiisi kehitystyökaluihin.Lisätietoja on kohdassa tests/lint/readme.md
Yksikkötestit
Yksikkötestejä voidaan ajaa skriptillä rununittests.bat
.Sisäisesti tämä skripti käyttää testien suorittamiseen Nose Python -testauskehystä.Kaikki argumentit, jotka annat komennolle rununittests.bat:lle annetut argumentit välitetään Nose:lle.Tutustu Nosen omaan dokumentaatioon testien suodattamisesta jne.
Järjestelmätestit
Järjestelmätestejä voidaan ajaa skriptillä runsystemtests.bat
.Sisäisesti tämä skripti käyttää Robotin testikehystä testien suorittamiseen.Kaikki argumentit, jotka annetaan komennolle runsystemtests.bat, välitetään Robotille.Tarkempia yksityiskohtia (mukaan lukien testien suodattaminen ja poissulkeminen) on kohdassa tests/system/readme.md
.
NVDA:n tukeminen
Jos haluat osallistua NVDA:n koodin tai dokumentaation tuottamiseen, voit lukea lisätietoja oppaasta.