RichCaloggero (2) [Avatar] Offline
#1
There is probably a lot more I could test / comment on here with respect to accessibility, but the most important (in my humble opinion) and easiest to address are proper heading structure, and code structure (i.e. are newlines preserved in screen reader rendering). A surprising number of PDF and epub manning titles fall short on one or both of these requirements.


** pdf

This looks great with respect to accessibility. The code is readable (i.e. line breaks are preserved in screen reader's rendering - often overlooked), and heading structure is very good (however see the following).

* need one more level of headings

The h1 tags wrap major chapter section titles like:
1.5. Dissecting the default project
1.6. Summary
2.1. Application overview

However, there needs to be heading which wrap the actual chapter titles so we can read the intro blurbs easily:
...
list of 1 items
2
list end
My fridge! A reactive game
This chapter covers
list of 4 items
• Building a reactive app with Meteor
• Understanding the basic architecture for Meteor projects
• Including jQuery-UI to enable drag-and-drop interfaces
• Using the Meteor command-line interface to deploy to meteor.com
list end
...

As the screen reader rendering here shows, there is also a list structure wrapping the chapter number; this makes no semantic sense. Chapter number should be part of the title and wrapped in the same heading tag:
- h1: 2 My fridge! A reactive game



** epub

Unfortunately, only h1 tags exist here, and they wrap only the chapter number and titles, but none of the section / subsections within each chapter. This makes the book basically unusable in this format.

The code does seem to have line breaks preserved in the screen reader rendering, however (this is great):
...
The next snippet looks like this:
if (Meteor.isClient) {
  // counter starts at 0
  Session.setDefault("counter", 0);
 
  Template.hello.helpers({
    counter: function () {
      return Session.get("counter");
    }
  });
//...
}
//...

Here you see two global objects in use:
....

-- Rich Caloggero,