ways2read/InDesignA11Y

Page Navigation

Opened this issue · 42 comments

User story: "As an end user page navigation is a high priority for me, especially in education an academic titles. I can reliably navigate to the text where the print page begins, and I am able to include page numbers in citations."

Hi @ways2read @gregoriopellegrino @LauraB7 ,

This is Ramanjulu from Adobe

we are following this syntax

<nav epub:type="page-list" hidden="hidden">
 <ol>
   <li><a href="georgia.xhtml#page752">752</a></li>
   <li><a href="georgia.xhtml#page753">753</a></li>
   <li><a href="georgia.xhtml#page754">754</a></li>
   <li><a href="georgia.xhtml#page755">755</a></li>
   <li><a href="georgia.xhtml#page756">756</a></li>
   <li><a href="georgia.xhtml#page757">757</a></li>
   <li><a href="georgia.xhtml#page758">758</a></li>
 </ol>
</nav>

And see that there are no issues reported from the Ace by DAISY tool

Could you please kindly confirm if this is in the expected lines?

Some notes, @raman211:

  • Please include the ARIA role on the <nav>: role="doc-page-list"
  • Be sure to include all page numbers in the list, including roman numerals or pages numbered with letter (a, b, c, etc.).
  • The page list should have a header: <h2>Page List</h2>.
  • The header referred to above should be localized.

@laurab Could you please confirm if this looks good enough, except for the localization part of the header?
Screenshot 2024-02-07 at 12 02 35 AM

Thanks,
Ramanjulu.

That works!

@raman211 A small warning: in the screenshot you posted, the epub:type attribute on the <nav> of the pagelist is missing. The epub:type attribute is required by the specification to make sure that reading applications interpret it correctly: https://www.w3.org/TR/epub-33/#sec-nav-def-types-intro

It therefore needs the double attribute epub:type="page-list" and role="doc-pagelist". The rest seems okay.

I suppose this issue is about page list functionality for reflowable epubs in Indesign, since fixed layout already has it. It's great it this is underway! This is a feature many publishers will appreciate.

Some notes on the suggestions above:

  • The links need to reference id attributes of page break markers in the content files, not the files themselves.
  • The heading should be Page List, not PageList.
  • As I see it, adding a heading to the page list is not necessary, since page lists are hardly ever displayed as part of the publication's content. It does not do any harm either, except for the complexities of localization.
  • If a heading is added, it should be localized according to the language of the publication or the navigation file, not the language version of Indesign used. At present, Indesign can't handle this. Using an English language version I get "Contents" and "Landmarks" as headings in the nav file regardless of the publication's language. Localizing according to the content might be challenging, since Indesign probably supports many more content languages than there are language versions of the application.

@ways2read , were you able to install 19.2?
@jonaslil , thanks for the suggestions. We would like you also to be part of our review meetings. Please send me your email so that next time I add you in these meetings.

I kept checking and my 19.2 update arrived on Monday. Thanks for checking!

@gregoriopellegrino @ways2read @jonaslil @LauraB7
Please let us know if the following one as the page separator looks good for the EPub Reflowablt document
<p><span id="pageBreakMarker0" role="doc-pagebreak" aria-label="pagebreak" epub:type="pagebreak"> </span></p>

Attaching one sample document with the PageBreak Markers here
SampleReflowable.zip

With this, we see one accessibility issue reported with the ACE tool asking for the ISBN

image

Could you please share your thoughts on, how the user interface should be for passing on the ISBN number and, also
If there should be a checkbox to allow the pagination for the Reflowable document.

Sample TOC with the pagination on the Reflowable document

image

Thanks,
Ramanjulu.

Dear @raman211 ,
I have checked with the team of experts and we would like to start by giving you these suggestions:

  • in the toc.xhtml file the page-list links must contain only the page number, not the text "page"
  • with respect to page markers in the content:
    • if the page marker is the first element of the xhtml file or if the page change is between two paragraphs (or other block elements) we suggest to insert it as an empty div (with the page number in the aria-label attribute): <div id="page0" role="doc-pagebreak" aria-label="1" epub:type="pagebreak" />
    • if the page change occurs in the middle of a paragraph, then before the first word of the page insert an empty span (with the page number in the aria-label attribute): <span id="page1" role="doc-pagebreak" aria-label="1" epub:type="pagebreak" />

Regarding the metadata field for reference to the paginated version, we are reasoning about it and I will get back to you shortly.

@raman211 wrote "Could you please share your thoughts on, how the user interface should be for passing on the ISBN number and, also If there should be a checkbox to allow the pagination for the Reflowable document."

We propose adding a checkbox in the export wizard, possibly labeled as "Create page navigation" which would control the creation of the pagelist and pagebreaks. By default, this checkbox would be flagged. This setting could be positioned under the General section where the navigation TOC settings are located.

We think this label would benefit from a bit more explanation for the user. How to do this? In the Export Adobe PDF / Advanced dialogue there are a couple of techniques. In one area there is an information icon and the text next to it. There is also the description box at the bottom, and the user hovers the mouse pointer over the option to display the description. However this is done, we prose the explanation "This will include hidden references to page numbers and create a page list. Recommended so that the reader can refer to the page numbers from the print edition or navigate in the ebook to a print page position."

When the checkbox is selected, a field to enter the pageBreakSource would be displayed, suggesting the structure "urn:isbn:xxxxxxxxxxxxx".

The page break source field should include three possibilities as outlined in the W3C's page source ID guidelines :

  • a unique identifier, expressed as a URN: ISBN or other identifier (most common)
  • a textual description (if there is no identifier)
  • "none" (if there is no source)

Please note: Ace by DAISY might currently flag an error if the pageBreakSource field is used, instead of dc:source. However, the developers are working on updating the application to align with these guidelines.

@ways2read , We appreciate your feedback. However, as we are nearing the final dates for the implementation phase, we regret to inform you that we will not be able to accommodate the changes to provide the option to add ISBN in this release. We will aim to address this in our next release.

Hi @gregoriopellegrino @ways2read @LauraB7 @CircularKen @jonaslil ,

The feature is available in the latest InDesign PreRelease of 19.4
Looking forward to your valuable feedback, before releasing it in 19.4
Please share your feedback on it ASAP, so that we can accommodate the changes for the 19.4 release.

Thanks,
Ramanjulu.

Thanks @raman211, it seems like an encouraging start, but we have identified several bugs. I'll try to report them below, if needed we can schedule a call or exchange some test files to test with.

  • the pagelist in the nav document is not created if "Multi-level (TOC Style)" is selected in the export dialog, if instead it is set as "Filename" then it is ok
  • when we have blank pages, these are listed in the page list, but there are no pagebreaks in the XHTML content, this creates errors in EPUBCheck; @mattgarrish what is the best approach for this?
  • when you change the section numbering in the file (e.g. first section in Roman numerals, then second section in Arabic numerals) both the pagelist and the pagebreaks always show only Arabic numerals and not in line with the actual page numbering
  • we have encountered page breaks with a dash that seem misleading to us, what do they mean? For example 72-1, 72-2, etc.
  • if you split the EPUB contents at export based on a paragraph style, the div for the pagebreak with the number of the first page in the chapter will be at the end of the preceding file, while it should be the first div in the new XHTML file
  • all the links in the page list (nav document) use the file name of the first xhtml file in the epub; so we have broken links
  • in some cases, such as in a section with text in two columns, the page break markers were inserted correctly but then repeated at the end of the story/file
  • we would prefer that the digits in the id of the page break marker matches the aria-label value (now it is off by one)
  • when we have blank pages, these are listed in the page list, but there are no pagebreaks in the XHTML content, this creates errors in EPUBCheck; @mattgarrish what is the best approach for this?

We discussed blank pages a couple of times in the last epub revision. See w3c/epub-specs#1501 and w3c/epub-specs#1502

That's why for the accessibility objectives for markers and the page list we say:

EPUB creators SHOULD include links to all pages of content reproduced from the source (i.e., they do not have to provide links for blank pages or content not reproduced in the digital edition).

If an EPUB creator includes page break markers ... they SHOULD include page break markers for all pages reproduced from the source (i.e., blank pages and content not reproduced in the digital edition do not require markers).

In other words, both approaches are fine but you need to be consistent. If you're omitting blank page markers, then you shouldn't be listing the pages in the page list as where are the links going? Or you could add the markers so that the links aren't broken.

The one unresolved question if you opt to add the markers is whether there should be some indicator that the page is blank. We seemed to be thinking that aria-describedby could be used for that (e.g., link it to a hidden element with some text like "this page intentionally left blank"). But that's not a requirement to do.

Hi @gregoriopellegrino @mattgarrish,
Thank you so much for your valuable feedback.

We have addressed the following items already, but unfortunately those were not part of the builds shared, as these were fixed later
The items we have addressed already from our end.

  1. "Multi-level (TOC Style)"
  2. Blank pages, the items are removed from the TOC
  3. when you change the section numbering in the file ...

    Earlier we were using the page number like 1,2,3... etc ignoring the page style, now using the same page number string comes from the page style (this would be exactly same as the Fixed Layout string we display)

  4. Page Break Id's with slashes is bug, it has been fixed
  5. we would prefer that the digits in the id of the page break marker matches the aria-label value (now it is off by one)

    already fixed in our builds

The items need clarity:

  1. if you split the EPUB contents at export based on a paragraph style, the div for the pagebreak with the number of the first page in the chapter will be at the end of the preceding file, while it should be the first div in the new XHTML file
  2. all the links in the page list (nav document) use the file name of the first xhtml file in the epub; so we have broken links

I believe both of the above two are related, we need more clarity on what is expected when we split the document.
We were thinking of adding the page break markers based on the print page sizes as per the problem definition here
We would like to have a meeting with you to understand the requirements or expectations here before we implement.

Need a file or sample code snippet to see the issue.

  1. in some cases, such as in a section with text in two columns, the page break markers were inserted correctly but then repeated at the end of the story/file

For this we don't have a local repro, could you please help with sharing a sample InDesign document?

CC: @ways2read @LauraB7 @jonaslil @Racmathu

@gregoriopellegrino Another PreRelease build ID19.4#48 is avaiable now, which has the fixes mentioned above
Could you please share your feedback ASAP?

Thanks,
Ramanjulu.

CC: @ways2read @LauraB7 @jonaslil @Racmathu @mattgarrish

Please file a JIRA ticket in case you find a bug in our implementation OR you need some enhancements/improvements. That way, you'll have visibility into the latest updates on that issue.

Hi @raman211 @Racmathu

I have done some tests with the latest prerelease build, which I am reporting here on behalf of the group. I also shared some sample files with @Racmathu.

  • Repeated page break markers with dashes in the id are not present in the same extent as before, but they still occur at some places.
  • The page list is now created also when Multi Level (TOC Style) is selected. But if you also choose Split Document, all the page list items are repeated a number of times, which matches the number of content xhtml files in the epub. See this toc file for an example.
  • I still observe the following issue: If you start a new section where the page numbering starts from 1 in the Indesign file, the page break markers don’t match the actual displayed print page numbers in this section, but count the number of pages from the beginning of the Indesign file.
  • The issues related to the Split Document export setting are still there: the first page break marker in a chapter will be at the end of the preceding file, and most of the page list links are broken because the file name of the first file is repeated in all of them. The expected behaviour would be:
    • If you split the content into files based on chapter headings that occur at the top of a print page, the page break marker for the first page of the chapter will be placed at the beginning of the xhtml file immediately before the chapter heading.
    • The file names in the page list links are correct and reflect which files the page break markers are found in.

@jonaslil Thank You so much for your valuable feedback and for sharing the files to validate the scenarios as well.

We have addressed all the issues except for one known issue with a new sub-paragraph landing on the following page start.
we will make sure it is part of the ID19.5 release.

Thanks,
Ramanjulu.

Thanks @raman211 when do you plan to release a new PR where we can test the improvements?

Hi All,

We have release latest PR with the above requested fixes. Request everyone to check and share the feedback as soon as possible.

Thanks,
Nawneet

Hi @gregoriopellegrino @ways2read @LauraB7 @jonaslil
We have the fixes for the above issues shared with the comment (#17 (comment))
are available with the latest Pre-Release builds ID19.4#62

Please share your feedback on it.
CC: @Racmathu @NawneetG .

Hi @gregoriopellegrino @ways2read @LauraB7 @awkawk @jonaslil

Please find the changes in the ID19.4 release builds, which are available for the public now.
CC: @Racmathu

Dear @raman211 ,
unfortunately some of the things pointed out in the comment #17 (comment) are still there and are creating problems for those creating EPUBs from InDesign with Page Navigation, in particular:

  • pagebreak tags (span and div) contain a space (they are not empty): the should be self-closing (<span ... />, <div ... />) or empty (<span ...></span>, <div ...></div>)
  • in the pagebreak the aria-label is not correct when using different numbering: for example, the page number is "VII", while the aria-label shows "7"
  • it is missing a metadata field to set the reference to the page source

Thanks

Hi @gregoriopellegrino

Thank you so much, for your valuable feedback, Please find my response below for the above feedback.

  • pagebreak tags (span and div) contain a space (they are not empty): the should be self-closing (<span ... />, <div ... />) or empty (<span ...>, <div ...>)

We would address this in the next release i.e ID19.5

  • in the pagebreak the aria-label is not correct when using different numbering: for example, the page number is "VII", while the aria-label shows "7"

We understood it as the sequential number of the footnote, should it match exactly with the page number string? If so we would make this change as part of ID19.5

  • it is missing a metadata field to set the reference to the page source

As communicated earlier, this requires the UI changes we will be adding a new UI to fill the page source (currently under discussion with our Designer for the UX)

Thanks,
Ramanjulu.

CC: @Racmathu @NawneetG

Dear @raman211,
thanks for your feeedback.

  • pagebreak tags (span and div) contain a space (they are not empty): the should be self-closing (<span ... />, <div ... />) or empty (<span ...>, <div ...>)

We would address this in the next release i.e ID19.5

Ok, we'll test the Pre-Release as soon as it becomes available.

  • in the pagebreak the aria-label is not correct when using different numbering: for example, the page number is "VII", while the aria-label shows "7"

We understood it as the sequential number of the footnote, should it match exactly with the page number string? If so we would make this change as part of ID19.5

As you have already done for the pagelist in the navigation document: the label for the different pages in the pagelist is correct, the same label should be inserted in the pagebreaks within the text.

  • it is missing a metadata field to set the reference to the page source

As communicated earlier, this requires the UI changes we will be adding a new UI to fill the page source (currently under discussion with our Designer for the UX)

Okay, let's wait.

I've found a nasty, repeatable scripting bug related to page navigation in 19.4:

In InDesign 19.4 on macOS 14.4.1, the document.epubExportPreferences.epubCreatePageNavigation and book.epubExportPreferences.epubCreatePageNavigation properties are supposed to allow scripts to toggle the reflowable EPUB "page navigation" option on and off. However, only the document.epubExportPreferences.epubCreatePageNavigation property functions properly. The book.epubExportPreferences.epubCreatePageNavigation doesn't do anything. Regardless of whether it is "true" or "false", the output always includes the page break markers when outputting reflowable ePub from a book file via scripting.

I have several client workflows that will require omitting the page navigation. This is a critical bug for us.

I've found a nasty, repeatable scripting bug related to page navigation in 19.4:

In InDesign 19.4 on macOS 14.4.1, the document.epubExportPreferences.epubCreatePageNavigation and book.epubExportPreferences.epubCreatePageNavigation properties are supposed to allow scripts to toggle the reflowable EPUB "page navigation" option on and off. However, only the document.epubExportPreferences.epubCreatePageNavigation property functions properly. The book.epubExportPreferences.epubCreatePageNavigation doesn't do anything. Regardless of whether it is "true" or "false", the output always includes the page break markers when outputting reflowable ePub from a book file via scripting.

I have several client workflows that will require omitting the page navigation. This is a critical bug for us.

@gilbertconsult Thanks for reporting the bug, we will address this one ASAP.

Dear @raman211,
to prepare ourselves for the call scheduled on Monday, June 17th: are there any new updates or releases related to this issue (specifically #17 (comment))?

Currently, we are running the InDesign Pre-Release 19.5 (Mainline CI #f95bd09) version on our machines.

Thanks

Dear @gregoriopellegrino @ways2read @LauraB7 @gilbertconsult We have dropped latest PR 19.5.0.58 build. Please test the fix and give your valuable feedback. We will be waiting to hear from you.
@Racmathu @raman211

PR 19.5.0.58 seems to resolve the problem I reported on May 10. Thank you!

As discussed in yesterday's call, two things still need attention:

  • Page break divs and spans should be self-closing or empty.
  • A field for entering page break source metadata is needed (see #17 (comment)).

The output in the epub metadata should use the pageBreakSource property. See Examples in the W3C report on Page Source Identification and DAISY knowledge base, Page Source.

Good morning all, I have recently created an EPUB using the Book Panel and the 19.4 page list function, and received over 700 errors from Ace by DAISY due to the page IDs in the page list not matching the IDs assigned to the page breaks in the individual documents. @gregoriopellegrino and @jonaslil have noted the inclusion of dashes in the mark-up and I am providing some extra information and evidence below to show the page list exported from InDesign for this particular book and the edited page list that has now passed Ace.

The InDesign-generated page IDs in the chapters are based on the page number within that document (restarting from 1 in each document in the Book Panel) and the number of times that page number has appeared in the EPUB. Page numbers that only appear once, such as the last pages in particularly long chapters, do not have a dash or second part to the ID. In this book, the first page 1 appears in Part 1 because the frontmatter uses roman numerals; the Part title pages are two-page documents and the second page is intentionally left blank (hence the jump in numbering in the edited example below between pages 95 and 96).

This may have been resolved in the developments for 19.5 but I hope this information may be of interest.

InDesign-exported page list code for chapter 4:
<li><a href="Chapter_04.xhtml#page1">95</a></li> <li><a href="Chapter_04.xhtml#page2">96</a></li> <li><a href="Chapter_04.xhtml#page3">97</a></li> <li><a href="Chapter_04.xhtml#page4">98</a></li> <li><a href="Chapter_04.xhtml#page5">99</a></li> <li><a href="Chapter_04.xhtml#page6">100</a></li> <li><a href="Chapter_04.xhtml#page7">101</a></li> <li><a href="Chapter_04.xhtml#page8">102</a></li> <li><a href="Chapter_04.xhtml#page9">103</a></li> <li><a href="Chapter_04.xhtml#page10">104</a></li> <li><a href="Chapter_04.xhtml#page11">105</a></li> <li><a href="Chapter_04.xhtml#page12">106</a></li> <li><a href="Chapter_04.xhtml#page13">107</a></li> <li><a href="Chapter_04.xhtml#page14">108</a></li> <li><a href="Chapter_04.xhtml#page15">109</a></li> <li><a href="Chapter_04.xhtml#page16">110</a></li> <li><a href="Chapter_04.xhtml#page17">111</a></li> <li><a href="Chapter_04.xhtml#page18">112</a></li> <li><a href="Chapter_04.xhtml#page19">113</a></li> <li><a href="Chapter_04.xhtml#page20">114</a></li> <li><a href="Chapter_04.xhtml#page21">115</a></li> <li><a href="Chapter_04.xhtml#page22">116</a></li> <li><a href="Chapter_04.xhtml#page23">117</a></li> <li><a href="Chapter_04.xhtml#page24">118</a></li> <li><a href="Chapter_04.xhtml#page25">119</a></li> <li><a href="Chapter_04.xhtml#page26">120</a></li> <li><a href="Chapter_04.xhtml#page27">121</a></li> <li><a href="Chapter_04.xhtml#page28">122</a></li> <li><a href="Chapter_04.xhtml#page29">123</a></li> <li><a href="Chapter_04.xhtml#page30">124</a></li> <li><a href="Chapter_04.xhtml#page31">125</a></li> <li><a href="Chapter_04.xhtml#page32">126</a></li> <li><a href="Chapter_04.xhtml#page33">127</a></li> <li><a href="Chapter_04.xhtml#page34">128</a></li> <li><a href="Chapter_04.xhtml#page35">129</a></li>

Edited page list for Chapter 4 that passes Ace by DAISY:
<li><a href="Chapter_04.xhtml#page1-6">95</a></li> <li><a href="Chapter_04.xhtml#page2-4">96</a></li> <li><a href="Chapter_04.xhtml#page3-4">97</a></li> <li><a href="Chapter_04.xhtml#page4-4">98</a></li> <li><a href="Chapter_04.xhtml#page5-4">99</a></li> <li><a href="Chapter_04.xhtml#page6-4">100</a></li> <li><a href="Chapter_04.xhtml#page7-4">101</a></li> <li><a href="Chapter_04.xhtml#page8-4">102</a></li> <li><a href="Chapter_04.xhtml#page9-4">103</a></li> <li><a href="Chapter_04.xhtml#page10-4">104</a></li> <li><a href="Chapter_04.xhtml#page11-4">105</a></li> <li><a href="Chapter_04.xhtml#page12-4">106</a></li> <li><a href="Chapter_04.xhtml#page13-4">107</a></li> <li><a href="Chapter_04.xhtml#page14-4">108</a></li> <li><a href="Chapter_04.xhtml#page15-4">109</a></li> <li><a href="Chapter_04.xhtml#page16-4">110</a></li> <li><a href="Chapter_04.xhtml#page17-4">111</a></li> <li><a href="Chapter_04.xhtml#page18-4">112</a></li> <li><a href="Chapter_04.xhtml#page19-4">113</a></li> <li><a href="Chapter_04.xhtml#page20-4">114</a></li> <li><a href="Chapter_04.xhtml#page21-4">115</a></li> <li><a href="Chapter_04.xhtml#page22-3">116</a></li> <li><a href="Chapter_04.xhtml#page23-3">117</a></li> <li><a href="Chapter_04.xhtml#page24-2">118</a></li> <li><a href="Chapter_04.xhtml#page25-2">119</a></li> <li><a href="Chapter_04.xhtml#page26-2">120</a></li> <li><a href="Chapter_04.xhtml#page27-2">121</a></li> <li><a href="Chapter_04.xhtml#page28-2">122</a></li> <li><a href="Chapter_04.xhtml#page29-2">123</a></li> <li><a href="Chapter_04.xhtml#page30-1">124</a></li>

Dear @bethanrichard, thanks for this feedback. I would ask you to continue the discussion via email, mine is gregorio.pellegrino@fondazionelia.org

I would ask you to have Ace's exact error and the EPUB file exported from InDesign that generates the error. Also, are you using the latest version of InDesign?

Thanks @bethanrichard

Dear @raman211,
I was able to reproduce the error. It seems that the page list is not created correctly, when creating an EPUB for a Book file. A minimal test to replicate the bug can be found here: test book.zip

The generated EPUB reports errors in both EPUBCheck validation (Fragment identifier is not defined) and Ace by DAISY validation (epub-pagelist-broken).

Thanks @gregoriopellegrino for the observation. We have logged bug internally and will try to accommodate the fix with this MAX release.
FYI @raman211 @Racmathu

@awkawk @gregoriopellegrino @ways2read @LauraB7 @jonaslil We have release InDesign 20.0.0.55 PR build. This includes ISBN support as discussed above. Please do check and provide feedback if any
cc/ @raman211 @Racmathu

@awkawk @gregoriopellegrino @ways2read @LauraB7 @jonaslil please do share your feedback so that if anything needs to be done, we can try to accomodate it in MAX.

We’re pleased to see the addition of a dropdown menu and input field for specifying the Pagination Source.

While we’re happy with the general design, there are a few areas for improvement. The main issue is that users aren’t given guidance on entering the ISBN in the right format. Specifically:

  • If “ISBN Number” is selected and an ISBN is entered without hyphens, the output appears as:
    <meta property="pageBreakSource">9780010010001</meta>
    However, the correct format for an ISBN should be:
    <meta property="pageBreakSource"> urn:isbn:9780010010001</meta>
    Would it be possible to automatically add the urn:isbn: prefix during export if the ISBN option is chosen?
  • There’s no hint text indicating what users should enter in the “Source” field. For the ISBN option, a suggestion like “9780010010001” would work, provided that InDesign adds the urn:isbn: prefix at export. Alternatively, the hint text could indicate the full value (urn:isbn:9780010010001) if users are responsible for including the prefix.

Other issues related to the Pagination Source feature:

  • If an epub is exported with "None" selected, and a different option is later chosen, the Source field is prepopulated with "None". It would be more logical for the field to be empty or show the relevant hint text.
  • The Pagination Source selection is empty by default, but once a value is selected, it's impossible to revert to the original blank state.

We have also noted that the problem with page lists not being generated correctly when the EPUB is created from a book file is still present.

@jonaslil we have acknowledged the feedback. We have logged separate jira tickets for same.
@raman211 @Racmathu