We had a busy week at the CSUN conference this year. In addition to giving a preview of the next version of Adobe Acrobat and Reader, we presented on mobile application accessibility using Adobe PhoneGap; content management features in Adobe Experience Manager; and our experiences working on an accessibility-first strategy for CloudUI, a core technology used across Adobe products. Here are the slides from those presentations.
Last week, Adobe announced the upcoming release of Adobe Acrobat DC and Adobe Reader DC. We have a few big new accessibility features that we want to let you know about in advance.
First, the upcoming release of Adobe Acrobat and Adobe Reader will contain support for reading tagged PDF content with assistive technology on both Windows and Mac OS X. For the first time, Mac users will be able to use VoiceOver to create, edit and read accessible PDF documents.
The new user interface in Acrobat and Reader is also improved, and includes features that will help both readers and producers of PDF content. The whole UI now responds to high-contrast modes, with new icons customized for light or dark backgrounds.
Accessibility authoring features in Acrobat are now organized in the Accessibility Tool, which is more configurable than in earlier versions. And you can still find the Make Accessible Action in the Actions Tool, along with a number of components you can use to test and automate the production of accessible PDF documents.
Acrobat and Reader DC will be available within the next 30 days. If you are an Adobe Creative Cloud subscriber, you’ll find the new version of Acrobat in the Creative Cloud app for you to download on the day it ships.
We’re working on lots of accessibility documentation for users and authors, and will keep you up to date as we go.
PDF accessibility is a popular topic around here. We believe access to the universe of PDF documents out in the world is critically important to users with disabilities, and we try where we can to help authors make PDFs as accessibly as possible using Adobe Acrobat and other products we make.
Freedom Scientific recently announced a beta version of their flagship screen reader, JAWS 16. In that release, their Convenient OCR (optical character recognition) feature has been expanded to help take inaccessible PDF documents (for example, paper documents taken directly from a scanner) and make them readable to screen-reader users. In light of this news, we want to caution creators of PDF content regarding what this new feature means for PDF accessibility.
Authors frequently ask us to automate this process for the thousands, millions or billions of documents they’ve already produced, and while tools do exist to do this, there’s no guarantee that they can be 100% effective at what they do. Likewise, tools like Convenient OCR, made for readers to access previously inaccessible content, all have their own limitations.
None of these tools is a silver bullet. Neither automated authoring tools nor assistive technology for readers is intended to relieve creators of PDF content from their responsibility to make that content accessible.
The PDF format, along with tools which implement the PDF/UA specification, have many features intended to enable a final PDF document that works for users on the devices they choose, with the software they choose, and with the accessibility features they prefer. No matter what technology may come along, authors know more about the structure and content of the document than any algorithm can.
The Convenient OCR feature is what’s known in accessibility as a repair technique. As with most other things, when you have to repair something, it means you’re starting with an item that is broken. This is true of inaccessible PDF documents: for example, when a page is scanned into a PDF without being properly tagged, readers miss both the textual content and the document structure that sighted users take for granted. When a tool tries to repair that document, it can only guess at the original text (and we know first-hand that OCR still isn’t 100% effective) and what kind of structure was intended.
Authors alone have the ability to communicate exactly what they mean, in a way that can be read by people with perfect vision, or who use a screen reader, or who use magnification software and/or features like high-contrast mode to adapt to their individual needs.
None of this is intended to take away from the work that Freedom Scientific is doing. Repair techniques are invaluable tools, and features like OCR have been used to work around inaccessible text since the 1970s. We feel this is a great feature for JAWS users. And other assistive technology companies such as Dolphin and AiSquared have also built tools to make text found in graphics readable to their users.
But for authors, the rules don’t change. We have lots of tools and tips on how to create accessible PDF documents that can be used by people of all kinds of abilities and preferences, and it’s still our responsibility to use them.
The accessibility of PhoneGap apps can actually be fairly good, depending on the underlying code used to build it. That’s because mobile browsers already come with a lot of accessibility support on their own, that these apps can use to their advantage. What they can’t do, that other mobile apps can, is ask the operating system if, for example, a user has large fonts enabled, or has colors reversed, or whether the screen reader is running. That’s why we built a Mobile Accessibility plugin, which feeds that information to PhoneGap apps, including notifying those apps when it changes. This plugin allows PhoneGap apps to look and feel even more like native applications by taking into accounts the preferences of the person using the device.
We’ve developed this API publicly on GitHub, so people can poke at it and give us feedback, but also to encourage more development. We started by building support for iOS and Android because, having built-in screen readers, magnifiers and other features, they had the most existing work we could integrate. But there are other platforms, like Windows Phone 8 and BlackBerry OS, which run PhoneGap apps and have accessibility APIs of their own, and which could have their own support in PhoneGap using this plugin. It’s on our to-do list, but if you have a more pressing need, you can follow the iOS and Android versions as a model for developing (and hopefully contributing) your own.
If you don’t have software development kits for mobile operating systems installed, but you have a free Adobe ID, you can still try your hand at developing a mobile app of your own. Try PhoneGap Build, our new service that lets you upload the code you want to turn into an app, then builds it for multiple platforms at once. You can even install it onto your test devices simply by entering a URL or snapping a QR code.
If you already use PhoneGap Build, we have even better news: the Mobile Accessibility plugin is now supported in Build, so you can use it like any other core plugin. Documentation is on GitHub, and we’ll be working on other ways to show developers how to improve the accessibility of their applications as time rolls on.
The United Nations Convention on the Rights of Persons with Disabilities (CRPD) was adopted in 2006, and has since been signed by 137 countries. The CRPD affirms the equality of all people, without exceptions due to their abilities. This month, Adobe sent a letter of support for the ratification of the Convention to Senators Robert Menendez (D-NJ) and Bob Corker (R-TN), the Chairman and Ranking Member of the Senate Foreign Relations Committee.
The Senate is responsible for approving treaties put forward for ratification by the president. The CRPD was signed by the United States in 2009. Unfortunately, at the time the CRPD was first presented to the Senate, it was not approved, falling just a few votes short of the required two-thirds vote.
Adobe is adding its voice to the chorus of organizations and advocates that believe the CRPD is an important step toward ensuring people with disabilities have equal access to government services, employment opportunities, and technological advances. One of the expectations of the CRPD is that ratifying countries will adopt standards for information technology accessibility. In order to facilitate the goal of equal access, it is critical that the adopted standards be harmonized to ensure that software from companies such as Adobe, developers creating content, and assistive technology vendors can focus on a single global standard for accessibility rather than needing to address unique requirements in each country.
The United States, through legislation such as the Americans with Disabilities Act of 1990, has already affirmed that disability must not be a barrier to entering a building, finding and keeping a job, interacting with government officials and services, shopping, dining out, or moving from place to place. Other U.S. laws guarantee equal access to education, voting, buying a home, catching a flight, and even watch TV shows on the Internet. While there is still work to be done, the foresight of bipartisan U.S. policymakers over the decades in creating a legislative framework that moves this country toward equal access for all people is now being emulated worldwide. Ratifying the CRPD will further show the world that these are the values we should all share.
We’re proud to announce our first Adobe Accessibility open-source product, Accessible Mega Menus. We’ve already written about the menus and how they came to be, and now they’re available to the public, under the Apache 2.0 license.
This is a port of the same code we use on adobe.com, and it combines great keyboard and screen-reader support with the kind of pixel perfection you would expect from a site like ours. We’re confident this will meet the needs of a wide range of sites, so we’d love to hear your feedback.
The Mega Menu homepage on GitHub is the place to read up on how it works. You can download Mega Menus from the repository, and you can file issues there as well. Or, if you want to contribute code, just make a pull request, and we’ll address it.
The PDF/UA (“Universal Accessibility”) specification, or ISO 14289, published by the International Organization for Standardization (ISO) in August of last year, was a big step forward for authors of the tools we use to create and consume PDF content. But what the spec itself does is a little harder to explain, and there’s been a lot of confusion. I even confused myself recently about what PDF/UA does and doesn’t specify. So I thought it might help to summarize the spec in some detail for those who are coming to grips with its place in the world of PDF accessibility.
If the PDF/UA specification could be summed up in one sentence, it may go something like this:
“PDF/UA makes certain that the PDF format isn’t the source of accessibility problems.”
The end result of a document built using the PDF/UA spec is a more reliable, more accessible document that avoids the tricks and traps that PDF can present. PDF authors don’t need to know anything specific about what goes on behind the scenes; the tools themselves are responsible for adding and preserving the accessibility of the PDF. That’s the value of PDF/UA.
That does not mean that a PDF/UA-compliant document will always be perfectly accessible—issues like poorly-built Word documents or other source material will, of course, carry their accessibility flaws no matter what format they’re converted into. No one should claim that PDF/UA conformance means that a given document will pass the Web Content Accessibility Guidelines (WCAG) 2.0, and organizations shouldn’t treat PDF/UA as a WCAG stand-in. But conformance does indicate that the authoring process for a given piece of content retains its accessibility level when it’s output as a PDF.
The PDF/UA specification defines conformance for three different aspects of PDF: content, readers, and assistive technology. The authoring tools are intentionally omitted: only the content they produce matters here, and that can only be measured at the individual document level.
We’ve seen a number of organizations that are specifying PDF/UA-compliant documents, and that’s a worthwhile approach, as far as it goes. The revamped accessibility checker in Adobe Acrobat Pro XI bases its tests on PDF/UA and WCAG criteria, but doesn’t yet fully test PDF/UA compliance.
The PDF/UA document itself is 23 pages, and thanks to ISO’s publishing model, it’s about $90 US to purchase a copy. We’re sensitive to the cost issue here, but in the interest of full disclosure, Adobe doesn’t own this work (it was the product of participants from a number of companies, and its copyright belongs to ISO), so we’re not able to simply republish the spec. To those who are planning to implement PDF/UA in their readers and assistive technologies, $90 is not a barrier (and if you promise to implement PDF/UA in an open-source tool, I’ll buy you a copy myself, though I’m sure I’d get the better end of that deal).
The material is what we in America call “inside baseball”—it’s very technical, requires a solid understanding of PDF internals, and is heavily cross-referenced with ISO 32000-1:2008, the PDF 1.7 specification. For non-technical authors looking to create accessible PDFs, this spec is very technical; you may be better off looking at the PDF Techniques for WCAG 2.0. However, I’ve taken the liberty of summarizing this spec so that everyone has a chance to understand what conformance entails.
The spec starts by listing what PDF/UA does not do: help with converting paper or electronic documents to PDF/UA; give implementation advice for rendering PDF documents; or tell you how to store PDFs or what OS to use. The rest of the front matter includes normative references to WCAG 2.0, PDF 1.7, PDF/A-2, and PDF/X-1a; defining a handful of terms; and setting a namespace for PDF/UA metadata which goes into every conforming file.
The document then defines conformance at three levels: individual files, PDF readers, and assistive technology.
A conforming file contains features that are valid according to the PDF 1.7 spec, except for features PDF/UA specifically forbids. It has to be marked as a PDF/UA document as described in Section 5, and meet all the requirements in Section 7 below.
A conforming reader must also be a conforming reader according to PDF 1.7. It will support all the tags, attributes and key values specified for accessibility, and respect when optional content is hidden. It will make the logical reading order available. It will allow AT to inspect artifacts, and its interface must itself be accessible, and not interfere with any AT feature.
There are some repair techniques for headings and tables, rules for handling optional content, attached and embedded files, digital signatures, actions, metadata, navigation, annotations, forms and media.
Conforming assistive technology
A conforming AT supports all of the features of the content and the reader, and should allow navigation by page labels, document structure, or the outline. It should also let the user override default navigation zoom. (A combined reader and AT, perhaps something like TextHelp’s PDF Aloud, could be both a conforming reader and a conforming AT.)
File format requirements
This is the meat of the spec, and there’s some good advice in here for those of you who are already well-versed in tagging PDFs.
All PDF/UA documents must be tagged PDF. Tags must be semantically appropriate (that is, you can’t just mark everything <p> and be done), and in logical reading order. Artifacts (sometimes referred to as “Background” in Acrobat) must not be tagged. If a PDF does anything non-standard with its tags, those tags have to be remapped to standard PDF tags. Standard tags can’t be overridden.
Content can’t flicker, blink or flash, and it can’t be conveyed solely by color, contrast, formatting, layout or sound. Image-only PDFs may be created, but their content must also be tagged.
The document must have a title, and it must be displayed in the title bar.
Text must be Unicode. The document’s language, and any changes in language, must be declared.
Graphics must be marked up with the Figure tag, and must have alt text, unless it’s presentational, in which case it’s an Artifact. Groups of images that represent one thought are to be tagged as a single Figure. Captions that go with figures must be tagged as such.
Headings must be nested sequentially (e.g., H1-H2-H3 is acceptable, but H1-H3 is not). Headings can go as deep as necessary (e.g., H1041 is valid, if you’ve used the first 1040 levels). Generic “H” headings are acceptable, but can’t be used interchangeably with numbered headings.
Tables should have headers (“TH” tags) with a Scope attribute.
Lists must be marked up appropriately.
Math equations must be in a Formula tag, with alt text.
Page headers and footers must be marked up as Pagination artifacts, so they’re not read out repeatedly.
Footnotes and endnotes must be marked up with the Note tag.
All optional content configuration dictionaries (a PDF feature which allows content to be hidden conditionally) must be named.
Any embedded files must also be accessible.
Article threads (which allow multicolumn layouts across pages) must retain proper reading order.
Digital signature form fields must be laid out accessibly.
Non-interactive forms have to be tagged with PDF “PrintField” attributes so they will appear as read-only form fields to AT.
Static XFA-based forms are allowed. Dynamic XFA forms are not.
Secured documents must allow AT access.
Documents should have outlines that reflect the reading order and nav hierarchy.
Visible annotations must be represented in the right place in the reading order.
Tab order must be defined.
Links must be tagged, and contain an alternate description.
Metadata tags must be properly set for embedded media.
Actions (i.e., scripting) are allowed. Changes in content or focus must be announced to AT, and cannot set time limits on individual keystrokes.
There are requirements for the implementation of fonts that are well out of scope for an overview, but important for reliable rendering of fonts across operating systems and reader implementations.
So, that’s it. We’re hoping a little transparency regarding PDF/UA helps everyone understand what it does and doesn’t do. In time, we anticipate that PDF/UA will make accessible authoring a more automatic and uniform process across authoring tools, which in turn will make the accessibility of PDFs in the wild a lot better in general.
Editor’s note: Recently, the adobe.com site switched over to a using a mega menu for global navigation. Adobe accessibility engineer Michael Jordan worked closely with our web team to build a menu system that brings great accessibility to a very design-sensitive site. Here, Michael explains his approach.
While mega menus, in many flavors, are fairly ubiquitous these days, thanks in part to the thumbs up given to them by Jakob Nielsen in his 2009 article Mega Menus Work Well for Site Navigation, we had a hard time finding many good examples for accessibility.
We think our approach strikes a decent balance between user expectation for global navigation, keyboard navigability, and screen reader access, and we felt that others might find it useful if we shared some of the thinking that went into our choices.
Our first major decision in implementing our Adobe.com mega menu was to respect user expectations for global navigation. As an accessibility engineer, it’s tempting to want always want to implement the appropriate WAI-ARIA design pattern for the widget I’m developing. In this case, working on a menu, I looked to the WAI-ARIA Menu or Menu bar (widget) design pattern which describes the keyboard interaction and WAI-ARIA roles, state and properties for a list of links presented “in a manner similar to a menu on a desktop application.” This would seem to fit the bill, but it’s somewhat problematic when implemented in its entirety for global navigation.
The design pattern specifies that the menu be treated as a single stop in the tab order, after which the arrow keys move between the menu and submenu items. This is the way application menus behave in desktop applications, and it improves accessibility for keyboard users because only one tab key press is required to move from the menu to the next focusable element in the application. However, for global navigation, we feel that most users still expect to be able to tab to at least the top level links in the navigation, and that the discovery of a jump in focus from the second link in the site to the search input, skipping all other top-level navigation items, could be confusing and would require unnecessary explanation.
Our implementation permits tab focus on each of the six top-level menu items. When one of the menu items has focus, pressing the Enter key, Spacebar or Down arrow will open the submenu panel, and pressing the Left or Right arrow key will shift focus to the adjacent menu item. Links within the submenu panels are included in the tab order when the panel is open. They can also be navigated with the arrow keys or by typing the first character in the link name, which speeds up keyboard navigation considerably. Pressing the Escape key closes the submenu and restores focus to the parent menu item.
The menu bar design pattern defines WAI-ARIA roles, state and properties. Some of these are also problematic when used in global navigation. If we use role=”menu” for the menu container and role=”menuitem” for each of the links therein, assistive technology will no longer interpret the links as links, but instead, as menu items. It is common for users of assistive technology to use a shortcut command to open a list of links in a web page. This allows them to quickly find a desired link without hunting through all the other content on the page. It’s a killer feature. If we use role=”menuitem” on links within our global navigation, they will no longer show up in the list of links identified by assistive technology. Cue the sad trombone.
We also want to maintain the semantic structure of the submenu panels in our mega menu, our links are organized into lists and separated by headings. Omitting role=”menu” and role=”menuitem” for the global navigation seems the safer way to go.
We still make use of the WAI-ARIA properties aria-haspopup, aria-owns, and aria-expanded to indicate which top-level links open submenus, the relationship between a link and its submenu, and the current state of the submenu.
We hope you find this useful, and we welcome any suggestions or comments you may have on the global navigation mega menu or other accessibility-related issues with adobe.com.
It’s hard to measure the impact the W3C/WAI Web Content Accessibility Guidelines Working Group (WCAG WG) has had on web accessibility. The WCAG 2.0 standard is the basis for a growing number of policies worldwide, providing a common reference for web content that adapts to users of all levels of ability.
Andrew Kirkpatrick, Group Product Manager for Accessibility, has been offered and accepted the role of co-chair of the WCAG WG, along with Joshue O’Connor of the National Council for the Blind of Ireland. Andrew and Joshue will take the place of Gregg Vanderheiden, who has chaired the WCAG WG since its inception, and Loretta Guarino-Reid, who played a pivotal role shepherding WCAG 2.0 to its final status as a W3C Recommendation in 2008. Both Loretta and Gregg will continue to participate in the WCAG WG, and we at Adobe Accessibility extend our gratitude to them for their years of effort moving the field of accessibility forward.
Andrew’s role will include the rechartering of the working group, to define goals for the working group and the WCAG standard in the coming years, as well as to reflect its continued development of accessibility techniques and other supporting materials. Andrew would like to hear from people from all different backgrounds on how the WCAG WG can help advance web accessibility overall. Apart from his Twitter account, @awkawk, leaving a comment here is one way to reach him, or you can submit a comment to the WCAG working group via the online form.