СлÑп поÑÑебиÑел оÑваÑÑ ÑÑимеÑеÑен оÑÑÐµÑ Ð²Ñв ваÑÐ¸Ñ Ð½Ð¾Ð² Delphi ÑеÑеÑ, вклÑÑва NVDA и ÑÑва Ð´Ð¾Ð»Ð½Ð¸Ñ ÐºÐ¾Ð»Ð¾Ð½ÑиÑÑл на ÑÑÑаниÑаÑа, Ñлед Ñова колона Ð¾Ñ ÑиÑÑи и накÑÐ°Ñ Ð·Ð°Ð³Ð»Ð°Ð²Ð¸ÐµÑо, коеÑо вÑеки зÑÑÑ ÑиÑаÑел би пÑоÑел пÑÑво. Ðли не ÑÑва абÑолÑÑно ниÑо. СÑÑаниÑаÑа изглежда пеÑÑекÑно на екÑана и ÑоÑно Ñова е капанÑÑ: изобÑазÑванеÑо (rendering) и ÑеÑенеÑо Ñа ÑазлиÑни пÑоблеми, ÑеÑавани Ð¾Ñ ÑазлиÑен код. РедÑÑ, в койÑо PDF ÑеÑÑае ÑвоиÑе глиÑове, нÑма никакво задÑлжение да ÑÑвпада Ñ Ñеда, в койÑо Ñовек ÑÑÑбва да ги ÑÑе. ÐоÑади Ñази пÑиÑина ÑеÑеÑ, изгÑаден Ñамо на база Ð¸Ð·Ð²Ð¸ÐºÐ²Ð°Ð½Ð¸Ñ Ð·Ð° изобÑазÑване, ÑÑздава безÑпÑеÑно изобÑажение, но неизползваемо озвÑÑаване. PDFium Component, VCL/LCL обвивкаÑа около ÑдÑоÑо PDFium за Delphi, C++Builder и Lazarus, вклÑÑва оÑделен Ð½Ð°Ð±Ð¾Ñ Ð¾Ñ Ð¿ÑогÑамни инÑеÑÑейÑи (APIs) за ÑеÑене по Ñази пÑиÑина. ÐнÑеÑÑейÑиÑе за ÑеÑÑане не Ð¼Ð¾Ð³Ð°Ñ Ð´Ð° вÑзÑÑановÑÑ Ñед на ÑеÑене, койÑо никога не им е бил пÑедоÑÑавен.
ÐÑеки доÑÑÑпен ÑеÑÐµÑ Ð·Ð°Ð²Ð¸Ñи Ð¾Ñ ÑÑи оÑновни неÑа. Той ÑÑÑбва да извлеÑе Ñед за ÑеÑене, койÑо екÑанниÑÑ ÑеÑÐµÑ Ð¼Ð¾Ð¶Ðµ да изговоÑи, да поддÑÑжа видим кÑÑÑÐ¾Ñ Ð²ÑÑÑ Ñ Ð´ÑмиÑе, ÑÑглаÑÑван Ñ Ð³Ð»Ð°Ñа, и да Ñазпознава кога даден докÑÐ¼ÐµÐ½Ñ Ð½Ðµ е маÑкиÑан (tagged), вмеÑÑо да гадае и да Ñе пÑеÑÑÑÑва. ÐÑÑко Ð¾Ñ Ñези неÑа има ÑÑен API инÑеÑÑейÑ, какÑо и вÑзможни пÑоблеми пÑи пÑопÑÑкане на деÑайлиÑе.
РедÑÑ Ð½Ð° ÑеÑене е в дÑÑвоÑо на ÑÑÑÑкÑÑÑаÑа, а не в Ñеда на ÑеÑÑане
ISO 32000-1 §14.8 деÑиниÑа логиÑеÑкаÑа ÑÑÑÑкÑÑÑа каÑо дÑÑво Ð¾Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñи, Ñазположени над ÑÑдÑÑжаниеÑо на ÑÑÑаниÑаÑа. PDF/UA (ISO 14289-1) оÑива по-Ð´Ð°Ð»ÐµÑ Ð¸ пÑави Ñова дÑÑво задÑлжиÑелно: вÑÑка ÑаÑÑ Ð¾Ñ ÑеалноÑо ÑÑдÑÑжание ÑÑÑбва да бÑде доÑÑÑпна ÑÑез него в Ñеда на ÑеÑене, каÑо аÑÑеÑакÑиÑе на ÑÑÑаниÑаÑа Ñа маÑкиÑани каÑо Ñакива и Ñе пÑопÑÑкаÑ. ÐÑавилно маÑкиÑаниÑÑ Ð¾ÑÑÐµÑ Ð·Ð½Ð°Ðµ, Ñе âQuarterly Resultsâ?е заглавие Ð¾Ñ Ð²ÑоÑо ниво, а ÑаблиÑаÑа Ñ ÑезÑлÑаÑиÑе е ÑаблиÑа Ñ ÐºÐ»ÐµÑки за заглавки. ÐемаÑкиÑаниÑÑ Ð¾ÑÑÐµÑ Ðµ пÑоÑÑо кÑпÑина позиÑиониÑани глиÑове, коиÑо ÑлÑÑайно Ð¸Ð·Ð³Ð»ÐµÐ¶Ð´Ð°Ñ ÐºÐ°Ñо докÑменÑ.
ReadablePageContent обÑ
ожда Ñази ÑÑÑÑкÑÑÑа, когаÑо ÑÑ Ð¿ÑиÑÑÑÑва, и вÑÑÑа ÑÑагменÑи, маÑкиÑани ÑÑÑ ÑеманÑиÑен Ñип Kind (ÑÑойноÑÑи каÑо cfHeading и cfParagraph), Ñака Ñе поÑÑебиÑелÑкиÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Ð´Ð° може да каже âheadingâ?(заглавие) пÑеди дÑмиÑе, вмеÑÑо да ÑеÑе Ñдебелен Ñед каÑо обикновен ÑекÑÑ. ÐÑи липÑа на използваемо дÑÑво ÑÑÑоÑо извикване пÑеминава кÑм евÑиÑÑиÑен анализ на оÑоÑмлениеÑо: Ñазпознаване на колони, гÑÑпиÑане на базови линии, подÑеждане Ð¾Ñ Ð»Ñво на дÑÑно и Ð¾Ñ Ð³Ð¾Ñе на долÑ. Този ÑезеÑвен ваÑÐ¸Ð°Ð½Ñ Ðµ подÑ
одÑÑ Ð·Ð° мемоÑандÑми Ñ ÐµÐ´Ð½Ð° колона, но е ненадежден за бÑлеÑини, многоколонни ÑоÑмÑлÑÑи или вÑиÑко, коеÑо има ÑÑÑаниÑна ленÑа или ÑиÑÐ°Ñ Ð² каÑе. ÐажноÑо е да знаеÑе какÑв ÑезÑлÑÐ°Ñ ÑÑе полÑÑили, а API ви казва Ñова диÑекÑно. ÐапиÑÑÑ TPdfReadableContent ÑÑдÑÑжа поле Source ÑÑÑ ÑÑойноÑÑ rosStructure, когаÑо ÑедÑÑ Ð¸Ð´Ð²Ð° Ð¾Ñ Ð¼Ð°ÑкиÑаноÑо дÑÑво, или rosHeuristic, когаÑо е изведен Ð¾Ñ Ð³ÐµÐ¾Ð¼ÐµÑÑиÑÑа на ÑÑÑаниÑаÑа. ÐоказванеÑо на пÑедполагаем Ñед за ÑеÑене каÑо поÑвÑÑден е ÐµÐºÐ²Ð¸Ð²Ð°Ð»ÐµÐ½Ñ Ð½Ð° пÑбликÑване на ÑалÑив ÑÑаÑÑÑ Ð·Ð° ÑÑпеÑно ÑеÑÑване на пÑиложение.
Ðай-леÑниÑÑ Ð¿Ð¾Ð´Ñ
од пÑи оÑваÑÑне е да пÑоÑеÑеÑе IsTagged и да извикаÑе ValidatePdfUa веднÑж, Ñлед коеÑо да окаÑиÑе оÑговоÑа. ÐеÑÑпеÑнаÑа пÑовеÑка за PDF/UA не е оÑнование за оÑказ Ð¾Ñ Ð¾ÑваÑÑне на Ñайла. Ð¢Ñ Ðµ повод да поÑÑавиÑе Ð½Ð°Ð´Ð¿Ð¸Ñ âпÑиблизиÑелен Ñед на ÑеÑенеâ?в ленÑаÑа на ÑÑÑÑоÑниеÑо (status bar), Ñака Ñе когаÑо ÐºÐ»Ð¸ÐµÐ½Ñ Ð¸Ð·Ð¿ÑаÑи оплакване за обÑÑкано глаÑово вÑзпÑоизвеждане, ÑеÑ
ниÑеÑкаÑа поддÑÑжка веÑе да знае дали ÑÑава вÑпÑÐ¾Ñ Ð·Ð° липÑа на маÑкиÑане вÑв Ñайла или за гÑеÑка вÑв ваÑÐ¸Ñ ÐºÐ¾Ð´.
ÐÑ ÑÑÑаниÑа кÑм опаÑка за Ð³Ð¾Ð²Ð¾Ñ Ñ ReadingUnits
Ðа пÑеобÑазÑване на ÑекÑÑ Ð² ÑÐµÑ (text-to-speech), ReadingUnits извÑÑÑва оÑновнаÑа ÑабоÑа. Този меÑод вÑÑÑа маÑив Ð¾Ñ Ð·Ð°Ð¿Ð¸Ñи TPdfReadingUnit за акÑивнаÑа ÑÑÑаниÑа, каÑо вÑеки ÑÑдÑÑжа ÑекÑÑа за изговаÑÑне, неговаÑа ÑеманÑиÑна ÑÐ¾Ð»Ñ Ð¸ пÑавоÑгÑлниÑиÑе, коиÑо го локализиÑÐ°Ñ Ð½Ð° ÑÑÑаниÑаÑа. СÑÑеÑÑвÑва и ÑÑоÑвеÑен меÑод за ÑÐµÐ»Ð¸Ñ Ð´Ð¾ÐºÑменÑ, DocumentReadingUnits, когаÑо иÑкаÑе непÑекÑÑнаÑо ÑеÑене Ð¼ÐµÐ¶Ð´Ñ ÑÑÑаниÑиÑе. ÐÑÑка единиÑа оÑговаÑÑ Ð´Ð¸ÑекÑно на една позиÑÐ¸Ñ Ð² опаÑкаÑа за говоÑ:
procedure TReaderForm.QueuePageSpeech(PageNumber: Integer);
var
Units: TPdfReadingUnits;
i: Integer;
begin
Pdf.PageNumber := PageNumber; // ReadingUnits works on the active page
Units := Pdf.ReadingUnits;
FSpeechQueue.Clear;
for i := Low(Units) to High(Units) do
FSpeechQueue.Add(Units[i]); // text + semantics + highlight rects
FCurrentPage := PageNumber;
SpeakNextUnit;
end;
Ðве неÑа в Ñози ÑикÑл леÑно Ð¼Ð¾Ð³Ð°Ñ Ð´Ð° Ñе обÑÑкаÑ. ÐоддÑÑжайÑе опаÑкаÑа за вÑÑка ÑÑÑаниÑа оÑделно и Ñ Ð¸Ð·Ð³ÑаждайÑе наново пÑи вÑÑко пÑеминаване на поÑÑебиÑÐµÐ»Ñ ÐºÑм дÑÑга ÑÑÑаниÑа, ÑÑй каÑо единиÑиÑе за ÑеÑене ÑÑдÑÑÐ¶Ð°Ñ Ð¿ÑавоÑгÑлниÑи в кооÑдинаÑиÑе на конкÑеÑнаÑа ÑÑÑаниÑа; опаÑка, оÑÑанала Ð¾Ñ ÑÑеÑа ÑÑÑаниÑа, Ñе наÑеÑÑае ÑвоиÑе маÑкиÑÐ°Ð½Ð¸Ñ Ð²ÑÑÑ
Ñ ÑеÑвÑÑÑа ÑÑÑаниÑа. ÐÑвен Ñова, пÑазен маÑив Units на ÑÑÑаниÑа, коÑÑо оÑевидно има ÑÑдÑÑжание, ÑÑÑбва да Ñе ÑÑеÑиÑа каÑо оÑкÑиване на ÑканиÑан докÑÐ¼ÐµÐ½Ñ (Ñамо изобÑажение). СканиÑанаÑа ÑÑÑаниÑа Ñе ÑÑÑÑои Ð¾Ñ Ð¿Ð¸ÐºÑели без ÑекÑÑов Ñлой под ÑÑÑ
и пÑавилноÑо ÑеÑение е да Ñе ÑÑобÑи пÑедÑпÑеждение (âÑазÐ?ÑÑÑаниÑа нÑма ÑекÑÑ Ð·Ð° извлиÑанеâ?, вмеÑÑо да Ñе запази мÑлÑание, коеÑо ÑлÑÑаÑелÑÑ Ð¼Ð¾Ð¶Ðµ да ÑбÑÑка ÑÑÑ Ð·Ð°Ð±Ð¸Ð²Ð°Ð½Ðµ на пÑогÑамаÑа.
ÐÑÑÑÐ¾Ñ Ð·Ð° дÑми, койÑо Ñледва глаÑа
ÐаÑкиÑанеÑо на ÑÑл Ð°Ð±Ð·Ð°Ñ Ð½Ð°Ð²ÐµÐ´Ð½Ñж изглежда мÑдно за поÑÑебиÑели Ñ Ð»Ð¾Ñо зÑение, коиÑо пÑоÑледÑÐ²Ð°Ñ Ð´ÑмиÑе Ñ Ð¾Ñи, докаÑо Ñе Ñе ÑеÑÐ°Ñ Ð½Ð° глаÑ. ÐаÑкиÑанеÑо на ниво дÑма (каÑаоке еÑекÑ) изиÑква две ÑаÑÑи: геомеÑÑиÑÑа на вÑÑка дÑма и наÑин за ÑÑпоÑÑавÑне на оÑÑеÑиÑе за пÑогÑÐµÑ Ð¾Ñ TTS ÑдÑоÑо кÑм Ñази геомеÑÑиÑ. PageWordBoxes пÑедоÑÑÐ°Ð²Ñ Ð³ÐµÐ¾Ð¼ÐµÑÑиÑÑа под ÑоÑмаÑа на запиÑи TPdfWordBox, вÑеки Ñ ÑекÑÑа на дÑмаÑа, Ð½ÐµÐ¹Ð½Ð¸Ñ Ð¾ÑмеÑÑÐ²Ð°Ñ Ñимвол (character offset), бÑÐ¾Ñ Ð½Ð° ÑимволиÑе и ÑÑоÑвеÑÐ½Ð¸Ñ Ð¿ÑавоÑгÑлник на ÑÑÑаниÑаÑа. TrackReadingWordAt оÑигÑÑÑва ÑÑпоÑÑавÑнеÑо. ÐодайÑе Ð¼Ñ Ð¿Ð¾Ð·Ð¸ÑиÑÑа на Ñимвола, коÑÑо ÑÑбиÑиеÑо за гÑаниÑа на дÑма на SAPI веÑе ÑÑобÑава, и Ñо Ñе опÑедели Ñова оÑмеÑÑване до Ð¸Ð½Ð´ÐµÐºÑ Ð² маÑива Ð¾Ñ Ð´Ñми и Ñе оÑвеÑи кÑÑÑоÑа вÑÑÑ
Ñ ÑÑоÑвеÑнаÑа дÑма Ñ ÐµÐ´Ð½Ð¾ извикване.
procedure TReaderForm.PrepareKaraoke(PageNumber: Integer);
begin
// The view's word boxes come from the page the view displays.
// Setting Pdf.PageNumber alone would not move the view
PdfView.PageNumber := PageNumber;
FWordBoxes := PdfView.PageWordBoxes;
end;
procedure TReaderForm.OnTtsWordBoundary(Sender: TObject; CharIndex: Integer);
var
WordIdx: Integer;
begin
// TrackReadingWordAt maps the offset AND paints the word cursor
WordIdx := PdfView.TrackReadingWordAt(FCurrentPage, CharIndex);
if WordIdx < 0 then
PdfView.ClearReadingWord; // boundary ran past the page text
end;
УÑловиÑÑа Ñа ÑедÑи в едно оÑноÑение и безкомпÑомиÑни в дÑÑго. ЩедÑаÑа ÑаÑÑ: TrackReadingWordAt поддÑÑжа ÑобÑÑвен ÐºÐµÑ Ñ Ð´Ñми за ÑÑÑаниÑаÑа, коÑÑо Ñледи, Ñака Ñе нÑма нÑжда Ð¾Ñ Ð¿ÑедваÑиÑелно заÑеждане и не Ñе извÑÑÑва никакво ÑендиÑане, ÑÑй каÑо ÑамкиÑе на дÑмиÑе Ð¸Ð´Ð²Ð°Ñ Ð´Ð¸ÑекÑно Ð¾Ñ ÑекÑÑÐ¾Ð²Ð¸Ñ Ñлой. Фонова ÑÑлÑга за Ð³Ð¾Ð²Ð¾Ñ Ð±ÐµÐ· видим пÑозоÑÐµÑ Ð²Ñе пак може да Ñледи позиÑииÑе. ÐезкомпÑомиÑнаÑа ÑаÑÑ: индекÑÑÑ Ð½Ð° Ñимвола ÑÑÑбва да ÑоÑи кÑм ÑекÑÑа, извлеÑен Ð¾Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñа, а не кÑм нÑкакÑв пÑеÑиÑÑен низ, койÑо ÑÑе генеÑиÑали Ñами. ÐогаÑо CharIndex пÑемине кÑÐ°Ñ Ð½Ð° ÑекÑÑа на ÑÑÑаниÑаÑа, ÑÑнкÑиÑÑа вÑÑÑа -1 вмеÑÑо да пÑедизвика изклÑÑение. Това Ñе ÑлÑÑва ÑеÑÑо, когаÑо TTS ÑдÑоÑо задейÑÑва едно поÑледно ÑÑбиÑие за гÑаниÑа за пÑепинаÑелни знаÑи в кÑаÑ. ТÑлкÑвайÑе -1 каÑо âизÑиÑÑванÐ?на кÑÑÑоÑаâ? а не каÑо гÑеÑка.
ÐÑ ÑÑÑана на диÑплеÑ, ReadingWordColor задава ÑвеÑа на кÑÑÑоÑа. ÐеÑ
либаÑениÑÑ ÑвÑÑ Ð¿Ð¾ подÑазбиÑане е видим вÑÑÑ
Ñ Ð¿Ð¾Ð²ÐµÑеÑо Ñонове на ÑÑÑаниÑи, но го ÑеÑÑвайÑе под вÑеки ÑилÑÑÑ Ð·Ð° диÑплей, койÑо ваÑиÑÑ ÑеÑÐµÑ Ð¿Ñедлага. ÐеÑ
либаÑениÑÑ ÐºÑÑÑÐ¾Ñ Ð¼Ð¾Ð¶Ðµ да изÑезне напÑлно пÑи инвеÑÑÐ¸Ñ Ð½Ð° ÑвеÑовеÑе, а инвеÑÑиÑÑа, ÑÑÑеÑана Ñ Ð³Ð¾Ð²Ð¾Ñ, е именно наÑинÑÑ, по койÑо ÑабоÑÑÑ Ð¿Ð¾ÑÑебиÑелиÑе Ñ Ð»Ð¾Ñо зÑение. ÐоÑади Ñова комбинаÑиÑÑа, коÑÑо най-много ÑÑÑбва да ÑеÑÑваÑе, ÑеÑÑо Ñе пÑопÑÑка в кÑаÑки демо демонÑÑÑаÑии. ÐадайÑе ReadingWordFollow на True и изгледÑÑ Ð°Ð²ÑомаÑиÑно Ñе пÑевÑÑÑи изговаÑÑнаÑа дÑма в полеÑо на видимоÑÑ, коеÑо е жизненоважно пÑи маÑабиÑана ÑÑÑаниÑа, излизаÑа извÑн екÑана. ÐнимавайÑе Ñ ÐµÐ´Ð½Ð¾ пÑавило за обÑ
ваÑ: SetReadingWord ÑеÑÑае Ñамо вÑÑÑ
Ñ Ð°ÐºÑивнаÑа ÑÑÑаниÑа на TPdfView. РеÑеÑе пÑедваÑиÑелно дали ÑÑÑноÑо пÑевÑÑÑане вÑеменно ÑпиÑа говоÑа или ÑÑнкÑиÑÑа за Ñледване го оÑменÑ, ÑÑй каÑо липÑаÑа на Ð¸Ð·Ð±Ð¾Ñ Ð¾ÑÑÐ°Ð²Ñ Ð³Ð»Ð°Ñа да ÑеÑе наÑаÑÑк, докаÑо кÑÑÑоÑÑÑ ÑÑои нÑкÑде извÑн екÑана.
ÐокÑменÑиÑе, коиÑо наÑÑÑÐ°Ð²Ð°Ñ ÑабоÑаÑа на ваÑÐ¸Ñ ÑеÑеÑ
ÐÑколко вида Ð²Ñ Ð¾Ð´ÑÑи Ñайлове пÑовалÑÑ ÑÑандаÑÑниÑе имплеменÑаÑии доÑÑаÑÑÑно надеждно, Ñе да заÑлÑÐ¶Ð°Ð²Ð°Ñ Ð¼ÑÑÑо каÑо поÑÑоÑнни ÑеÑÑове в ÑегÑеÑÐ¸Ð¾Ð½Ð½Ð¸Ñ Ð²Ð¸ пакеÑ, а не каÑо единиÑни гÑеÑки, коиÑо попÑавÑÑе и забÑавÑÑе.
- ÐемаÑкиÑани Ñайлове Ñ Ð¼Ð½Ð¾Ð³Ð¾ ÑекÑÑ. ÐвÑиÑÑиÑниÑÑ Ñед обикновено е пÑавилен за линеен оÑÑеÑ, но гÑеÑи в моменÑа, в койÑо Ñе поÑви ÑÑÑаниÑна ленÑа или ÑиÑÐ°Ñ Ð² каÑе. ÐаÑкиÑайÑе Ñеда каÑо пÑиблизиÑелен какÑо в инÑеÑÑейÑа, Ñака и в диагноÑÑиÑÐ½Ð¸Ñ Ñи дневник, за да може пÑоблемÑÑ Ð´Ð° бÑде леÑно иденÑиÑиÑиÑан по-кÑÑно.
- СканиÑани докÑменÑи Ñамо Ñ Ð¸Ð·Ð¾Ð±ÑажениÑ. ÐÑма никакÑв ÑекÑÑов Ñлой. УловеÑе ги ÑÑез пÑазни единиÑи за ÑеÑене и наÑоÑеÑе поÑÑебиÑÐµÐ»Ñ ÐºÑм OCR ÑÑÑпка по веÑигаÑа, вмеÑÑо да позволÑваÑе на ÑеÑеÑа да озвÑÑава пÑазна ÑÑÑаниÑа.
- ÐомбиниÑаÑи знаÑи и ÑмеÑени ÑкÑипÑове. ÐомбиниÑаÑиÑе знаÑи в Unicode невинаги Ñе ÑÑÐ¸Ð²Ð°Ñ ÐµÐ´Ð½Ð¾ кÑм едно вÑв визÑални дÑми, Ñака Ñе бÑоÑÑ Ð½Ð° кÑÑииÑе Ñ Ð´Ñми може да Ñе ÑазлиÑава Ð¾Ñ Ð¾ÑакваниÑÑа на ваÑÐ¸Ñ ÑобÑÑвен анализаÑоÑ. Ðе индекÑиÑайÑе маÑива Ñ ÐºÑÑии Ð¾Ñ Ð´Ñми Ñ Ð¾ÑмеÑÑваниÑ, коиÑо ÑÑе изÑиÑлили ÑÑез ÑамоÑÑоÑÑелно ÑазделÑне на ÑекÑÑа; използвайÑе Ñамо индекÑиÑе, коиÑо
TrackReadingWordAtвÑÑÑа.
ТеÑÑвайÑе каÑо одиÑоÑ, а не каÑо за пÑезенÑаÑиÑ
âÐÑогÑамаÑа пÑоÑеÑе Ð¼Ð¾Ñ Ð¿ÑимеÑен Ñайл на глаÑâ?не доказва ниÑо. ÐÑÑинÑкиÑÑ ÑÑпеÑен ÑеÑÑ Ð¸Ð·Ð¸Ñква пÑÑканеÑо на ÑÑи Ñайла пÑез завÑÑÑÐµÐ½Ð¸Ñ Ð±Ð¸Ð»Ð´ Ñ Ð¿ÑикаÑен NVDA: един поÑвÑÑдено маÑкиÑан Ñайл, кÑдеÑо заглавиÑÑа Ñе ÑÑобÑÐ°Ð²Ð°Ñ ÐºÐ°Ñо Ñакива, а ÑаблиÑаÑа Ñе ÑеÑе по Ñеда на ÑедовеÑе; един поÑвÑÑдено немаÑкиÑан Ñайл, кÑдеÑо индикаÑоÑÑÑ Ð·Ð° пÑиблизиÑелен Ñед е видим; и едно ÑканиÑано изобÑажение, пÑи коеÑо пÑедÑпÑеждениеÑо за липÑа на ÑекÑÑ Ð´ÐµÐ¹ÑÑвиÑелно Ñе изговаÑÑ. ÐÑеки Ð¾Ñ ÑÑÑ ÑеÑÑва пÑÑ, койÑо идеалниÑÑ ÑлÑÑай пÑопÑÑка.
След Ñова поÑвÑÑдеÑе, Ñе кÑÑÑоÑÑÑ Ð½Ð° дÑмиÑе оÑÑава заклÑÑен пÑи двойна и наполовина ÑкоÑоÑÑ Ð½Ð° ÑеÑÑа, и Ñе пÑевÑÑÑанеÑо Ñ ReadingWordFollow не Ñе конÑликÑиÑа Ñ ÑÑÑноÑо пÑевÑÑÑане Ð¾Ñ Ð¿Ð¾ÑÑебиÑелÑ. След Ñова пÑÑнеÑе говоÑа, докаÑо пÑеминаваÑе пÑез вÑеки ÑвеÑен ÑилÑÑÑ, и Ñе ÑвеÑеÑе, Ñе кÑÑÑоÑÑÑ Ð½Ð¸ÐºÐ¾Ð³Ð° не изÑезва. СÑаÑиÑÑа за ÑилÑÑи за лоÑо зÑение опиÑва Ñози пÑÑ Ð½Ð° изобÑазÑване в деÑайли, а ÑÑаÑиÑÑа за кÑÑÑоÑа за Ð³Ð¾Ð²Ð¾Ñ Ð½Ð° дÑми анализиÑа вÑемеÑо на TTS.
API инÑеÑÑейÑиÑе за единиÑи за ÑеÑене и кÑÑии Ð¾Ñ Ð´Ñми, използвани по-гоÑе, Ñе доÑÑавÑÑ Ñ PDFium Component за Delphi и C++Builder (VCL) и Lazarus/FPC (LCL). СÑÑаниÑаÑа на пÑодÑкÑа ÑÑдÑÑжа вÑÑзки кÑм пÑлнаÑа докÑменÑаÑÐ¸Ñ Ð½Ð° API, вклÑÑиÑелно ÑÑÑÑкÑÑÑаÑа на запиÑиÑе за единиÑи за ÑеÑене и кÑÑии Ð¾Ñ Ð´Ñми, пÑедÑÑавени в Ñези пÑимеÑи.