ã¢ãŠãã©ã€ã³ãªãã§ããã¥ã¡ã³ãã®ã¢ãŠãã©ã€ã³ã衚瀺ããæ©èœã«åãçµãã§ãããšãã«ãPDF圢åŒãPDFã®æ§é ã«ã»ãã³ãã£ã¯ã¹ãæ·»ä»ããæšæºçãªæ¹æ³ïŒPDFä»æ§ã®14.6ã14.7ã14.8ïŒããµããŒãããŠããããšãããããŸããã ããã¯ãããã¹ãã®éžæãæ€çŽ¢ãããã³ã¢ã¯ã»ã·ããªãã£ãæ¹åããããã«äœ¿çšã§ããŸãã
ããã¯è€éãªæ©èœã§ãããããããããã«ã¯è§£æ±ºãããªãã§ãããã ãã ããã¿ã°ä»ãPDFã®åäžã«ããå°ããªæ©èœã®ãµããŒãã段éçã«è¿œå ããããšãã§ããŸãã ç§ã¯çŸåšãPDFããã¢ãŠãã©ã€ã³ãæœåºãããŠãŒã¹ã±ãŒã¹ã®ããã«ãæå°éã®å
éšããŒã¿æ§é ãšããŒãµãŒïŒ NumTree
ã StructTree
ã StructElem
ïŒãéçºããŠããŸããã¿ã°ä»ãPDFã«é¢é£ãããããªãæ¹åã®åºç€ã
é¢é£ããBugzillaã®ãã°ïŒ
å€éšãªãœãŒã¹ïŒ
[ããªã¢ãŒãžãå¿ èŠ]ã©ãã«ãè¿œå ããŸããã ã¿ã°ä»ãPDFã«é¢é£ããéçºã«ã¯ãæ°ããã©ãã«ïŒ4-tagged-pdfïŒãå¿ èŠã§ããïŒ
PDFã®äŸã¯ãããŸããïŒ ç§ã¯å人çã«ãã®ãããªPDFãèŠãããšããããŸããã ãããã¯å®éã«ã©ã®ãããã®é »åºŠã§äœ¿çšãããŸããïŒ
ã¯ããããã€ããããŸãã
$ cd test/pdfs/
$ grep -rla '/Marked true'
i9.pdf
fips197.pdf
issue1169.pdf
smaskdim.pdf
issue3879.pdf
bug816075.pdf
pdf.pdf
issue1709.pdf
f1040.pdf
wdsg_fitc.pdf
annotation-border-styles.pdf
ecma262.pdf
bug887152.pdf
issue1133.pdf
issue2442.pdf
issue1796.pdf
type4psfunc.pdf
ããã«å¿ èŠãªå Žåã¯ã httpsïŒ //encrypted.google.com/searchïŒq = filetypeïŒ 3Apdf + "ïŒ 2FMarkInfo" + "ïŒ 2FMarked + true"
ããããšãããããŸããïŒ ãã®å Žåãããã調ã¹ãããšã¯ééããªãèå³æ·±ãããšã§ãã
HTMLå±æ§ãšARIAå±æ§ãçµã¿åãããŠäœ¿çšââããããšã§ãããå®è£ ããã®ã¯æ¯èŒçç°¡åãããããªããšæããŸã-ã¬ã³ããªã³ã°ã«å€æŽãå ããå¿ èŠã¯ãããŸãã-ããã€ãã®æ°ããå±æ§ãè¿œå ããã ãã§ãã
PDFã®ã¿ã°ä»ãæ
å ±ã¯StructTreeRootããªãŒã«ä¿åãããŸãããã®ããªãŒã«ã¯ã代æ¿ããã¹ããèšèªãã»ãã³ãã£ãã¯ã¿ã€ãïŒH1ãTHãLIãªã©ïŒãªã©ã®ã¢ã¯ã»ã·ããªãã£æ
å ±ãå«ãæ§é èŠçŽ ãå«ãŸããŠããŸãã æ§é èŠçŽ ã«ã¯ãããŒãžã³ã³ãã³ãã¹ããªãŒã å
ã®ãªããžã§ã¯ããžã®åç
§ãå«ãŸããŠããŸãã ããã«ããã瀺ãã°ã©ãã£ãã¯ããããŸãïŒ
https://stackoverflow.com/a/34047585
次ã®ãããªãã®ã䜿çšããŠãPDFã®ã¿ã°ä»ãæ
å ±ã_layoutText(textDiv)
æ¿å
¥ã§ãããšæããŸãã
1ïŒã¬ã³ããªã³ã°ãããŠããPDFãªããžã§ã¯ãã®StructTreeRootããªãŒã§å¯Ÿå¿ããæ§é èŠçŽ ãæ€çŽ¢ããŸã
2ïŒæ§é èŠçŽ ã®æ§é ã¿ã€ããH1ãH2ãLIãªã©ã®å Žåã¯ãdivã«role
å±æ§ãè¿œå ããŸãã
3ïŒæ§é èŠçŽ ã«/ Altãšã³ããªãããå Žåã¯ãdivã«aria-label
å±æ§ãè¿œå ããŸã
4ïŒæ§é ã¿ã€ãH1ãH6ã®èŠåºãã¬ãã«ã«å¯Ÿå¿ããdivã«aria-level
å±æ§ãè¿œå ããŸã
ããã«ãããèŠåºãããªã¹ããç»åã«ã¹ã¯ãªãŒã³ãªãŒããŒã§ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã ããŒãã«ã®å®è£ ã¯ããè€éã«ãªãå¯èœæ§ããããŸãã
PDFæ§é ã¿ã€ãã¯ãã»ã¯ã·ã§ã³14.8.4.3ã«ãªã¹ããããŠããŸãã ã®
https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf
èŠåºãã®å Žåãã¬ã³ããªã³ã°ã¯æ¬¡ã®ããã«å€æŽãããŸãã
<span style="left: 173.529px; top: 237.049px;
font-size: 5.99874px; font-family: sans-serif;
transform: scaleX(1.05905);">
7. Evaluation
</span>
ããã«ïŒ
<span style="left: 173.529px; top: 237.049px;
font-size: 5.99874px; font-family: sans-serif;
transform: scaleX(1.05905);"
role="heading" aria-level="1">
7. Evaluation
</span>
ããã¯ã¹ã¯ãªãŒã³ãªãŒããŒã«ãã£ãŠã7.è©äŸ¡ãèŠåºãã¬ãã«1ããšããŠèªã¿åãããããã«éèŠãªããšã«ããŠãŒã¶ãŒã¯ã次ã®èŠåºããããŒã䜿çšããŠèŠåºãéãã¹ãããã§ããŸãïŒããã«ãã倧ããªããã¥ã¡ã³ãã®ããã²ãŒããã¯ããã«ç°¡åã«ãªããŸãïŒ
4-tagged-pdfã©ãã«ãåé€ãããŠããããšã«æ°ã¥ããŸããã ããã¯ãŸã è¿œæ±ãããŠãããã®ã§ããïŒ
æªè§£æ±ºã®åé¡ã¯ãæ€èšäžã§ããããšã瀺ããŠããŸãã ããã¯æ©èœã§ãããã©ãã«ã¯å°ã䞊ã¹æ¿ããããŠããŸãã
ãããŒãããã¯çŽ æŽãããã§ãïŒ æ€èšäžã®ãã®æ©èœã«ã¯ãã¿ã°ä»ãPDFã®çæã®ãµããŒããå«ãŸããŠããŸããïŒ æ¢åã®PDFã®ããŒãµãŒ/ã¢ãã©ã€ã¶ãŒã®ãããªãã®ã®å®è£ ã容æã«ããããšãã§ããŸããã508cPDFã®çæã®ãµããŒããæäŸããŸãã
508c PDFã®çæã«å¿ èŠãªã³ã¢æ©èœïŒ
ããã4ã€ã®ã³ã¢æ©èœãååšããå Žåã508cPDFãçæããããžãã¯ãPDFçæããã»ã¹ã«å®è£ ããããšãå¯èœã§ãã ãã®æ©èœããµããŒããããŠããOpenSourcejavascriptããŒã«ããŸã èŠã€ããŠããªãã®ã§ãæ£çŽãªãšãããããã¯å·šå€§ã§ãã
ãããæžããåŸããããå¥ã®æ©èœèŠæ±ãšããŠé©æ Œã§ãããã©ããã¯ããããŸãã...ãã®å Žåã¯ãåãã§æ°ããåé¡ãäœæããŸãã
ç§ã¯@cuhallerãšWCAG2.0ã®SC2.4.10ããã³1.1.1ãžã®ã³ã³ãã©ã€ã¢ã³ã¹ãåäžãããŠããŸããã
ãã®åé¡ãå®è¡ããå¿ èŠãããããšã®ãµãã»ããã«ã¯ãå€æŽã§ååã§ãããšæããŸãã å¯çš¿ã¬ã€ãã©ã€ã³ã«åŸã£ãŠãæ¥é±ããããã§PRãè¡ããŸãã éä¿¡æã«ãã®ã¹ã¬ãããæŽæ°ããŸãã
ãã®ãªããžããªã®headings -and-img-alt-textãã©ã³ãã«ãããŸãã
ãã¹ã¿ãŒãšã®ããŒãžã®ç«¶åããããçŸåšãããã解決ããæéããªããããPRãéãã®ããããã£ãŠããŸãã
誰ãããã®ãã©ã³ãããã¹ã¿ãŒãšææ°ã®ãã®ã«ããããã®å¯çšæ§ãæã£ãŠãããªããé£çµ¡ãåããŸãããïŒ
Edgeã¯ãã¿ã°ä»ãPDFã®ãã€ãã£ããµããŒãã宣äŒããŠããŸãã ChromeãããããµããŒãããããã«ãªããã¿ã°ä»ããããPDFãWebããŒãžãããšã¯ã¹ããŒãããæ©èœã宣äŒãããŠããŸãã
çŸåšãFirefoxã¯PDFã®ã¿ã°ä»ããã¢ã¯ã»ã·ããªãã£ããªãŒ/ã¢ã¯ã»ã·ããªãã£APIã«å ¬éããŠããŸããã ãã ãããã®ããã¹ãã¯Firefox80ã®ãŸãã
Firefoxãããã©ã«ãã®ã·ã¹ãã PDFãã¥ãŒã¢ãšããŠèšå®ã§ããããã«ãªããŸããã
ATã«äŸåããŠãããŠãŒã¶ãŒããããè¡ãå ŽåããŸãã¯ãŠãŒã¶ãŒã®æ§æãç¥ããªãã·ã¹ãã 管çè ããããè¡ãå ŽåãEdgeãChromeããŸãã¯Adobeã®Readerã«äŸåããŠãããŠãŒã¶ãŒãã¿ã°ä»ãPDFã解æããã®ã¯åé¡ã«ãªãå¯èœæ§ããããŸãã
80ã®ãªãªãŒã¹ããŒãããã¢ããã€ã¹ãåé€ãããã®ãã°ã®åªå é äœãäžããããšã匷ããå§ãããŸãã ç§ã¯MozillaãçŸåšãªãœãŒã¹ã«å¶çŽãããããšãç解ããŠããŸããã競åãããã©ãŠã¶ãŒã§ããé©åã«æäŸãããã¢ã¯ã»ã¹ã§ããªãæ©èœãä¿é²ããããã®å åŠã¯èŠæ ããè¯ããããŸããã
ç§ãã¡ã®çµç¹ã¯ãæ¯æŽæè¡ã®ãŠãŒã¶ãŒã®ããã«ã¢ã¯ã»ã·ãã«ãªPDFãœãªã¥ãŒã·ã§ã³ãå®è£ ããããšããŠããŸãã ã»ãã³ãã£ãã¯ããŒã¯ã¢ããããªããããPDFJSã§PDFããã¬ãã¥ãŒããããšã¯ã§ããªããšããçµè«ã«éããŸããã ã»ãã³ãã£ãã¯æ å ±ã®æ¬ åŠã¯ãã¹ã¯ãªãŒã³ãªãŒããŒãœãããŠã§ã¢ãæäœãããŠãŒã¶ãŒã«ãšã£ãŠéå£ãšãªããŸãã PDFã¯ãã¬ãŒã³ããã¹ãã§è¡šç€ºããã泚éãã¢ããŠã³ã¹ããŸãããèŠåºããè¡šãç»åããŸãã¯ãªã³ã¯ã«ã¯ããŒã¯ã¢ããã¯æäŸãããŸããã
ããŒãã«ãåãå·»ããŠãŒã¹ã±ãŒã¹ã¯ãã¹ã¯ãªãŒã³ãªãŒããŒã®ãŠãŒã¶ãŒã«ãšã£ãŠç¹ã«å°é£ã§ãã ã»ãã³ãã£ãã¯ããŒã¯ã¢ããããªãããŒãã«ã¯ããŠãŒã¶ãŒã«ã³ã³ããã¹ããæäŸãããã¹ã¯ãªãŒã³ãªãŒããŒãŠãŒã¶ãŒãPDFã«è¡šç€ºãããæ å ±ãå®å šã«ç解ããããšã¯äžå¯èœã§ãã
ãªã³ã¯ã¯ç¹å®ã®ãªã³ã¯ããã¹ãã§ã¯ãªãURLãšããŠã¢ããŠã³ã¹ãããããããªã³ã¯ã®ç®çãç解ããã®ãå°é£ã§ãã ãŠãŒã¶ãŒãã³ã³ããã¹ãå ã®ãªã³ã¯ãç解ã§ããããã«ããªã³ã¯ã¯ãªã³ã¯URLã®ä»£ããã«è¡šç€ºå¯èœãªãªã³ã¯ããã¹ãã䜿çšããããšããå§ãããŸãã
ãã®ãµããŒãããªããã°ãPDFJSãåºãå®è£ ããããšã«æžå¿µããããŸãã ã»ãã³ãã£ãã¯ããŒã¯ã¢ãããæäŸããæ©èœã®ãµããŒãã«é¢ããæŽæ°ãŸãã¯ã¿ã€ã ã©ã€ã³ã¯ãããŸããïŒ ãã®åé¡ã¯ãã³ã³ãã³ããèªèããŠæäœãããŠãŒã¶ãŒã®èœåã«åœ±é¿ãäžãããããããé«ãåªå 床ãšèŠãªããããããé¡ãããŸãã
ç§ã®ç¥ãéããè²¢ç®ã¯å€§æè¿ã§ã
ããã«åãçµãã§ãããŠããããšã
pdf.jsãã¹ã¿ãŒã§@trjohnstã®ãã©ã³ããæåã§ãªããŒã¹ãå§ããŸããã ãã®ã¢ãããŒãã¯ãåäžã®ã¬ãã«ã®ã¿ãå¿ èŠãšããã¿ã°ã«é©ããŠããŸãã äŸïŒèŠåºãã代æ¿ããã¹ãä»ãã®ç»åã ã³ã³ãã³ãã¹ããªãŒã ããŠã©ãŒã¯ãããšãã«ãããŒã¯ãããã³ã³ãã³ãã·ãŒã±ã³ã¹ã«ééãããšãé¢é£ããæ§é èŠçŽ ãæ€çŽ¢ããpdf.jsããã¹ãã¬ã€ã€ãŒã«ãã£ãŠåºåãããHTMLã®ããã¹ãã¹ãã³ã«é©åãªARIAããŒã«ãé 眮ããŸãã
æ®å¿µãªãããããã¯ãã¹ããããã¿ã°ãå¿ èŠãšãããã®ã«ã¯ååã§ã¯ãããŸããã äŸïŒãªã¹ããŸãã¯ããŒãã«ã å°ãªããšãå€ãã®ããªãããŒãªãšããžã±ãŒã¹ããªããã°ãã¢ãããŒããæ¡åŒµããŠããããã«ããŒããããšã¯ã§ããªããšæããŸãã ããã«ããªã³ã¯ãšãã©ãŒã ãã£ãŒã«ããé©åã«ãµããŒãããã«ã¯ïŒ @trjohnstã®æçš¿æã«ãã©ãŒã ãã£ãŒã«ããpdf.jsã§ãµããŒããããŠããªãã£ãããšã«æ³šæããŠãã ããïŒãã¢ãããŒã·ã§ã³ã¬ã€ã€ãŒã ãã§ãªããã¢ãããŒã·ã§ã³ã¬ã€ã€ãŒãèæ ®ããå¿ èŠããããŸããããã¹ãã¬ã€ã€ãŒã ããã«ååãã«èãããšãã¿ã°ãªãPDFã®èŠåºãããªã³ã¯ãããŒãã«ããã©ãŒã ãã£ãŒã«ããªã©ãæ€åºïŒããã³æ£ããé 眮ïŒããããã®ãã¥ãŒãªã¹ãã£ãã¯ãå®è£ ã§ãããšäŸ¿å©ã§ãã
ããã¹ãã¬ã€ã€ãŒã§ãããå®è¡ããããšããã®ã§ã¯ãªããæ§é ããªãŒããŠã©ãŒã¯ããããã«åºã¥ããŠããŒããã¬ã³ããªã³ã°ããåºåããèŠçŽ ã«ARIAããããã£ãèšå®ããå¿ èŠããããšæããŸãã æ§é ããªãŒã¯ãããã¹ãã¬ã€ã€ãŒãšæ³šéã¬ã€ã€ãŒã®äž¡æ¹ã®ããŒã¿ãåç §ã§ããŸãã æ§é ããªãŒã«åºã¥ããŠããã¹ããšæ³šéã¬ã€ã€ãŒã®DOMããŒãã䞊ã¹æ¿ããããšãã§ããŸãïŒèŠèŠçãªã¬ã³ããªã³ã°ãå£ããã«ããªãããŒãããããŸãããïŒïŒããŸãã¯aria-ownsã䜿çšããŠãDOMã䞊ã¹æ¿ããã«a11yããªãŒã ãã䞊ã¹æ¿ããããšãã§ããŸãã
ã¢ãŒããã¯ãã£çã«ã¯ãããã¹ãã¬ã€ã€ãŒãšã¢ãããŒã·ã§ã³ã¬ã€ã€ãŒããã§ã«å¥ã ã«ã¬ã³ããªã³ã°ãããŠãããããããã¯æ³šæãå¿ èŠã§ãã次ã«ãäž¡æ¹ã®ããŒãã移åïŒãŸãã¯åç §ïŒã§ããæ§é ããªãŒã§ãã3çªç®ã®ã¬ã€ã€ãŒïŒãŸãã¯å°ãªããšãçå®ã®æ å ±æºïŒã確èªããå¿ èŠããããŸããä»ã®ã¬ã€ã€ãŒã ãããè¡ãæãç°¡åãªæ¹æ³ã¯ããããããã¹ãŠã®ããŒã¯ãããã³ã³ãã³ãã·ãŒã±ã³ã¹ïŒããã¹ãã¬ã€ã€ãŒå ïŒãšãªã³ã¯/ãã©ãŒã ãã£ãŒã«ãïŒæ³šéã¬ã€ã€ãŒå ïŒã«IDãæ·»ä»ããããšã§ãã ãã©ãŒã ãã£ãŒã«ãã«ã¯ãIDãæå®ããããŒã¿å±æ§ããã§ã«ããããã§ãã aria-ownsã䜿çšããå Žåã¯ããšã«ããidå±æ§ãèšå®ããå¿ èŠãããããã1ã€ã®ã¹ã³ãŒã³ã§2矜ã®é³¥ã«é€ãäžããå¯èœæ§ããããŸãã idã¯ãæ°ããæ§é ã¬ã€ã€ãŒå ãããããã¹ãã¬ã€ã€ãŒãšã¢ãããŒã·ã§ã³ã¬ã€ã€ãŒã®å€åŽããèšç®ã§ãããã®ã§ããå¿ èŠããããŸãã æ§é ããªãŒãåŠçãããšãã¯ãæ§é èŠçŽ ã®èŠçŽ ãåºåããIDã«åºã¥ããŠããã¹ã/泚éã¬ã€ã€ãŒããèŠçŽ ã移å/ææããŸãã
ã¿ã°ä»ããããPDFãè¶ ããŠãã¥ãŒãªã¹ãã£ãã¯ã«ç§»è¡ããã«ã¯ã次ã®ãããªããšãã§ããå¿ èŠããããŸãããªã³ã¯ãŸãã¯ãã©ãŒã ãã£ãŒã«ãã®æ³šéãäžããããå Žåããã®é·æ¹åœ¢ã¯ããã¹ãã¬ã€ã€ãŒå ã®äœããå å«ããŸããïŒ å«ãŸããŠããå Žåã泚éã¯ãã®ããã¹ãã«é¢é£ä»ããå¿ èŠããããŸãïŒaria-ownsãŸãã¯DOMmoveïŒã ç¹°ãè¿ãã«ãªããŸãããããã¹ãã¬ã€ã€ãŒãšæ³šéã¬ã€ã€ãŒïŒããã³ãããã®å ¥åïŒãåé¢ãããŠããã䜿çšã§ãããããã®ã¬ã€ã€ãŒãããã£ãã·ã¥ãããç¶æ ããªããšæããããããã¯ã¢ãŒããã¯ãã£çã«æ³šæãå¿ èŠã§ãã ãã ããããã¹ãã¬ã€ã€ãŒãšæ³šéã¬ã€ã€ãŒã«ãã£ãŠã¬ã³ããªã³ã°ãããããŒãã®å¢çã確èªã§ããå¯èœæ§ããããŸãããããã«ãã£ãŠã³ã³ãã³ããšãã¬ãŒã³ããŒã·ã§ã³åŠçã®éã®ã¢ãŒããã¯ãã£äžã®å¢çããããŸãã«ãªãå§ããŸãã
ã¿ã°ä»ãPDFã®æåã®å®è£ ã¯ãå¿ ããããã¥ãŒãªã¹ãã£ãã¯ããµããŒãããå¿ èŠã¯ãããŸãããããããã¢ãŒããã¯ãã£èšèšã®äžéšãšèŠãªãããšã匷ããå§ãããŸãã çŸå®ã«ã¯ãã¿ã°ãªãã®PDFã¯æ®å¿µãªããéåžžã«æ®åããŠãããããããããã¢ã¯ã»ã¹ããããããããšãèš±å¯ããªãã¢ãŒããã¯ãã£ã«åºå®ãããã®ã¯æ²ããããšã§ãã ïŒAcrobat Readerãããã³ããã»ã©ã§ã¯ãªããChromiumã¯ããã¥ãŒãªã¹ãã£ãã¯ã䜿çšããŠãã¿ã°ãªãPDFãããã¢ã¯ã»ã¹ããããããããšããŠããããšã«æ³šæããŠãã ãããïŒ
æãåèã«ãªãã³ã¡ã³ã
Edgeã¯ãã¿ã°ä»ãPDFã®ãã€ãã£ããµããŒãã宣äŒããŠããŸãã ChromeãããããµããŒãããããã«ãªããã¿ã°ä»ããããPDFãWebããŒãžãããšã¯ã¹ããŒãããæ©èœã宣äŒãããŠããŸãã
çŸåšãFirefoxã¯PDFã®ã¿ã°ä»ããã¢ã¯ã»ã·ããªãã£ããªãŒ/ã¢ã¯ã»ã·ããªãã£APIã«å ¬éããŠããŸããã ãã ãããã®ããã¹ãã¯Firefox80ã®ãŸãã
ATã«äŸåããŠãããŠãŒã¶ãŒããããè¡ãå ŽåããŸãã¯ãŠãŒã¶ãŒã®æ§æãç¥ããªãã·ã¹ãã 管çè ããããè¡ãå ŽåãEdgeãChromeããŸãã¯Adobeã®Readerã«äŸåããŠãããŠãŒã¶ãŒãã¿ã°ä»ãPDFã解æããã®ã¯åé¡ã«ãªãå¯èœæ§ããããŸãã
80ã®ãªãªãŒã¹ããŒãããã¢ããã€ã¹ãåé€ãããã®ãã°ã®åªå é äœãäžããããšã匷ããå§ãããŸãã ç§ã¯MozillaãçŸåšãªãœãŒã¹ã«å¶çŽãããããšãç解ããŠããŸããã競åãããã©ãŠã¶ãŒã§ããé©åã«æäŸãããã¢ã¯ã»ã¹ã§ããªãæ©èœãä¿é²ããããã®å åŠã¯èŠæ ããè¯ããããŸããã