Share this project


Share this project

AccDC: The Accelerated Dynamic Content API project video thumbnail
Replay with sound
Play with

We need your help to revolutionize the development of automatically accessible web technologies all around the world!

We need your help to revolutionize the development of automatically accessible web technologies all around the world! Read More
pledged of $30,000 goal
seconds to go

Funding Unsuccessful

This project's funding goal was not reached on May 23, 2012.

Share This Project

About this project

Imagine a world where all dynamic web technologies are fast, reliable, and automatically accessible.
It's entirely doable; AccDC already does it!

AccDC is an Accessibility API for the Web! (Please check out the FAQ section for more specific details about functionality.)

What is 'accessibility'?

Imagine a donkey.
There it is in your mind, sitting there, big twitchy ears, sort of fuzzy.
In front of the donkey is a big orange tasty carrot, swinging from side to side.
Between the donkey and the carrot is a clear glass wall, unbreakable of course (not nice), with no way around.
So there the donkey sits, salivating, watching the carrot, smelling it even, unable to reach it;
Fuzzy ears twitching as it moves its head back and forth, tracking the carrot;
Braying mournfully as it bonks its head gently against the glass...
Sad donkey...

This is what it feels like every time a disabled user discovers that a technology is not accessible. (And no, I don't mind comparing myself to a donkey.)
Accessibility allows disabled people to shop, to manage their finances and appointments, to work productively, to socialize with family and friends, and to do much more on an equal footing with everybody else. That's what accessibility means.

This is what AccDC is designed to do, it makes the most complex features of web technologies automatically accessible for disabled users! (No more glass walls. = Happy donkey!)

So, here's a few things to know in advance:
A 'screen reader user' is a person who uses software that announces text on the screen.
A 'keyboard only user' is a person who cannot use the mouse.
An 'Assistive Technology' is software or hardware that bridges the gap between what the person can do, and what needs to get done.
In my case for example, I have no sight, so I use a screen reader to interact with the computer. This Assistive Technology is my bridge to the virtual world.

Below, are some complex web technology features that you will probably be familiar with. The difference however, is that AccDC is used to make each automatically accessible for disabled users!

figure1: AccDC is used to create a Facebook styled chat dialog that automatically announces incoming messages to screen reader users.

figure2: AccDC is used to create a Google styled auto-suggest search field that acts as an automatically accessible keyboard friendly drop down box.

figure3: AccDC is used to create a TreeView control that is automatically accessible to screen reader and keyboard only users.

figure4: AccDC is used to create a carousel control that automatically announces slide details when moving backward and forward for screen reader users.

figure5: AccDC is used to create a dynamic calendar control that is fully accessible to screen reader and keyboard only users.

figure6: AccDC is used to create drag and drop zones that are automatically accessible to screen reader and keyboard only users.

AccDC can also be used to power fully dynamic websites. For example, is fully powered by AccDC, and is designed to be the most accessible fully dynamic website in the world.

So who is AccDC for?

AccDC is a JavaScript API (application programming interface) that is designed for businesses, public and private organizations, academic institutions, or anyone else that wishes to study and develop automatically accessible web technologies.

Why is this important?

Even though AccDC is designed for businesses, organizations, and universities, it will steadily improve the user experiences of web technology users like you, me, and everyone else, as AccDC spreads throughout the web, making interactive applications more user friendly, reliable, faster, and automatically accessible for disabled Assistive Technology users.

As a result, it will positively impact millions of people like us!

So here's the plan:

(1) I will reprogram the AccDC API cloud service, and release it as a free distributable JavaScript module that can be incorporated into any code library, framework, or platform that supports JavaScript, so it can be used by any business, organization, or university to enhance their services and applications without obligation! The downloadable AccDC module will also be able to operate as a standalone API, so that web developers can use AccDC with minimal resources to make things run faster! The standalone AccDC source code will be ready and downloadable from by July 2012.

(2) I will write a book, 'Changing the World with AccDC', which will be an advanced programming guide for developers and students wishing to maximize development with AccDC and learn automatically accessible programming techniques. This will also provide valuable curriculum material for universities; ensuring that the next generation of developers will be fully versed in the development of automatically accessible web technologies as soon as they hit the work force; sowing the seeds for a new positive age of the web! The book will be complete by December 2013, and ready for distribution within the first quarter of 2014, though it will likely be available sooner than that.

The team for this project consists of myself, and Ana Cristina (my wife) who is the graphic designer for the project, since she's the one with the eyeballs. (She's the one who made the project photo for this page)

If we can raise thirty thousand with your help, all of the above goals will be done! Simple as that.

The best part though, is if we can go over thirty thousand. The more we raise with your support, the better we can make AccDC a driving force in the international programming community by establishing AccDC as a programming game-changer for emerging web technologies. Specifically, it will allow us (1) to reach out to more businesses, organizations, and universities around the world, (2) to translate the book 'Changing the World with AccDC' into multiple languages for wider distribution, and (3) to ensure continued development of AccDC in the future.

Every pledge that goes over our initial goal will be used to secure the future of AccDC and to ensure its continued development, so every dollar in support of this project is absolutely critical!

You know, together, we really can change the virtual world into a better place for everyone.

Thank you for taking the time to check out AccDC! As always, please don't hesitate to contact me if you have any questions or queries whatsoever.

All the best,
Bryan Garaventa
Connect with me on LinkedIn!


  • No problem! AccDC includes integrated ARIA support to enhance proper page structuring for screen reader users, as well as a recursive Announce method that can be used to send textual messages to be dynamically announced for screen reader users.

    Moreover, AccDC can be configured at runtime to include any other ARIA roles or attributes to build and render custom control types on the fly.

    AccDC will also render HTML5 components with the same level of ease as standard HTML/XHTML!

    Last updated:
  • AccDC is a core processing system, so that you can output any type of UI component you wish, rendered via standard HTML/XHTML or using JavaScript. When the UI components are rendered, they are automatically surrounded by a framework of supporting Divs, which are used to convey important role information for screen reader users. This is the DOM rendering aspect.

    The real power of AccDC is in the backend however, which handles flow control, behavioral switches for visual effects, DOM maintenance routines, event handling, sequential scripting, and the ability to interface UI components with other UI components that are declared as AccDC Objects.

    This makes it possible for AccDC to be incorporated into any library or framework to enhance pre-existing web technologies, or to be used by itself to make new ones with equal ease.

    Hmm... Maybe some imagery would help...

    Picture a machine that makes ping pong balls.

    The machine is AccDC, the ping pong balls are AccDC Objects.

    Now, the ping pong balls can be any shape or size.

    You can have big ones, little ones, some floating in the air, some bouncing off the walls.

    You can have ping pong balls within ping pong balls within ping pong balls.

    You can have little teams of ping pong balls working together to play capture the flag,
    or you can have one ping pong ball send a message to another ping pong ball telling it to go bonk another ping pong ball.

    You see? AccDC Objects can be used to do all sorts of cool stuff!

    Last updated:
  • No, there is no such thing as a magic button to automate accessibility.

    Simply put, AccDC is an accessibility API for the web, which can also be used to build powerful dynamic applications using JavaScript.

    The framework allows developers to build encapsulated user interface components in such a way, that accessibility is built in and can be redistributed with the components themselves, so that accessibility can propagate across various web technologies simply by the study and use of these components. This is why the encapsulated object model of AccDC is so important.

    Also, as the use and knowledge of such components becomes more widespread, developers will pick up on the techniques and concepts that are used in the construction of these components, and begin to build their own in the same manner. This is why I'm trying to raise the funds to write the book, so that I can outline these concepts in a clear and concise manner, so the construction of such components will be as accessible as possible for everyone.

    Last updated:
  • No, of course not, accessibility will never be a 100% proposition because of the various technologies and disability types involved. However, we can certainly raise the bar as high as possible, which will have a positive impact on the lives of millions.

    Last updated:
  • As defined at

    The answer is sort of similar, but not really.

    The concept for a Mixin is basically like this,
    you have object1, and object2 with extra stuff in it,
    then you merge object2 into object1 so that now object1 has the extra stuff as well.
    The drawback to this concept, is that, if there are pre-existing accessibility issues within object1 to begin with, those issues will still exist even after object2 is merged into it.

    AccDC is more of a wholesale solution, where an enclosed object is provided as a plug-and-play component.
    Here is a simple example, which I've already implemented before.

    There is an AccDC Object declaration, which is a block of code that loads automatically when AccDC starts up.
    The ID for this AccDC Object is 'tooltip', and is designed to display an accessible tooltip message that is automatically announced to screen reader users when displayed.
    So, after it loads into AccDC, it's ready to be used like so within a click event handler:

    // Set the triggering element so that the tooltip will appear next to it visually.
    $A.reg.tooltip.triggerObj = this;
    // Set the tooltip text that will be displayed.
    $A.reg.tooltip.source = 'You must enter a valid email address to continue with registration.';
    // Now open the tooltip.

    And that's it. All of the other stuff like event handlers enabling keyboard accessibility, automatic announcement for screen reader users, mouseOver and mouseOut functionality and so on, are already built into the tooltip object; so all you have to do to use it, is to plug the tooltip object into any application using AccDC, set a few parameters and open it, and it just works.

    Plus, and this is really cool, you can change the nature of the object on the fly as well, while preserving the same level of accessibility. For example, take the tooltip example above, where you can do the following from within a click handler as well:

    // Set the triggering element so that the tooltip will appear next to it visually.
    $A.reg.tooltip.triggerObj = this;
    // Change the autopositioning so that the message appears to the left of the triggering element instead.
    $A.reg.tooltip.autoPosition = 7;
    // Change the class name to apply a different styling to the tooltip.
    $A.reg.tooltip.className = 'decorated tooltip';
    // Set the tooltip text that will be displayed.
    $A.reg.tooltip.source = 'You must enter a valid email address to continue with registration.';
    // Now open the tooltip.

    Or, you could even change the nature of the tooltip AccDC Object into a popup like so from within the same click handler, by loading the desired popup content from an external HTML file. This would also preserve the same level of accessibility.

    // Set the triggering element so that the tooltip will appear next to it visually.
    $A.reg.tooltip.triggerObj = this;
    // Change the role of the object from a tooltip to that of a popup.
    $A.reg.tooltip.role = 'Popup';
    // Change the rendering mode from 0 to 1, which will pull content from an external file.
    $A.reg.tooltip.mode = 1;
    // Set the external file path, and point to a particular message using its ID attribute.
    $A.reg.tooltip.source = 'files/popupList.html #message1';
    // Now open the converted popup.

    Plus you can use nested and linked AccDC Objects to build complex components like tab controls, dialogs, dropdown menus, carousels, wizards, or any other user interface component you can think of.

    Last updated:
  • Absolutely! I built the WhatSock Day Planner service at
    using AccDC to power everything.
    For example, AccDC is used to render the calendar and all associated dynamic behaviors, to query the Facebook Graph API for user authentication, to save planner entries on the server using JSON, and to control processing using flow control to make the application work more reliably.

    And yes, it is fully accessible to screen reader and keyboard only users!

    Last updated:
  • As defined at

    A polyfill does fit the analogy, but not in the same way as it's commonly understood.

    The purpose of a polyfill is to patch up browser inconsistencies. For instance, say you can do something on IE but you can't do it the same way in Firefox, so you use a polyfill solution to make it possible to use the same script so that it works in both IE and Firefox at the same time. jQuery works like this, where you can use the same jQuery commands to perform an action that is equally compatible in both IE and Firefox.

    AccDC does the same thing, so you can create component objects that render successfully across browsers and platforms, such as in IE and Firefox, Safari on the Mac and iOS devices, etc. So, in this way, it does offer the same functionality as a conventional polyfill.

    Modernizr is a more specific form of polyfill, where Modernizr can be used to run cross-browser compatible processes, and is designed to be plugged into other technologies for this purpose, which is awesome!

    Think of it this way, a polyfill is designed to bridge the gaps between the browsers and platforms so the same applications will work on all of those systems equally well, but this doesn't include accessibility.

    AccDC does both at the same time, so that content is rendered in a consistently accessible manner that is cross-browser compatible. AccDC does this by updating the Document Object Model in ways that are proven to be most accessible for keyboard and screen reader users, and includes a framework for adding additional accessibility related information to every AccDC Object so that accessibility is an integral part of every component.

    So basically, AccDC is a polyfill for accessibility.

    Last updated:
  • There are more similarities with the way that jQuery works, at least on the backend. When I first wrote AccDC in 2009, it was a jQuery plugin. This limited its versatility however, since it couldn't be directly integrated into other systems that didn't also use jQuery, and I didn't want the system to be reliant on a constantly changing system. So I rewrote all of the API functionality to use cross-browser functions based on the X library at, and kept some of the other open source components like the event handling system, and then I rewrote everything else and removed all redundant processes to make AccDC work faster. This is why the AJAX functionality is similar to that of jQuery's, though nothing else is.

    Last updated:
  • Yes! You can plug AccDC into larger packages to enhance the functionality of those software systems. For example, you can plug AccDC into frameworks or libraries like YUI and jQuery, to enhance functionality.

    This works because AccDC is a closed system, meaning that it won't conflict with anything else that's running at the same time. Another framework can then generate AccDC Objects and use them within their own framework on the fly, or customized user interface components that utilize AccDC can be created and redistributed. Then you can have the combined functionality of the framework or library and AccDC at the same time.

    Also, AccDC can be used by itself, so you don't have to include it within any other framework for it to work, so it is very versatile.

    Last updated:
  • Certainly, let's make a Tab Control that is fully accessible to screen reader and keyboard only users!

    Since the code includes HTML markup, it doesn't display properly in the FAQ section, so I've created a text file with the instructions at

    Last updated:
  • As defined by the International Digital Publishing Forum, the EPUB3 standard ( )
    supports the use of JavaScript.

    So the answer is yes, AccDC can be included within eBook publications to power accessible dynamic behaviors within browser based readers.

    Last updated:

Support this project

  1. Select this reward

    Pledge $10 or more About $10 USD

    The Totally Tubular Backer Reward:
    (1) Get one display quality 5x7 glossy print of the cover art for the book!
    It will be slick, stylish, and awesome.

    Estimated delivery
    1 backer
  2. Select this reward

    Pledge $20 or more About $20 USD

    The Totally Swanky Backer Reward:
    (1) Get one display quality 8x10 glossy print of the cover art for the book!
    It will be slick, stylish, awesome, and bigger.

    Estimated delivery
    1 backer
  3. Select this reward

    Pledge $25 or more About $25 USD

    The Super Swanky Backer Reward:
    (1) Get one display quality 8x10 glossy print of the cover art for the book; signed by the artist and myself!
    It will be slick, stylish, awesome, and absolutely unique.

    Estimated delivery
    1 backer
  4. Select this reward

    Pledge $30 or more About $30 USD

    The Totally Gnarly Backer Reward:
    (1) Get one free copy of Changing the World with AccDC, a programmers guide to AWESOMENESS!
    Changing the World with AccDC is scheduled for completion by December 2013, after which all free copies will be mailed.

    Estimated delivery
    11 backers
  5. Select this reward

    Pledge $1,000 or more About $1,000 USD

    The Corporate Sponsorship Reward:
    (1) Accreditation for sponsorship within the AccDC module download package.
    Will be seen by every international business, organization, academic institution, and developer that downloads the AccDC API.
    May include name, business or affiliation (if applicable), 200 word description of business or affiliation (if applicable), and hyperlink (if applicable).
    The only exceptions being, no illegal or offensive associations can be listed.
    Sponsors will be listed from top to bottom, starting with the highest contributors, or by soonest date when contributions are identical.
    The AccDC module package is scheduled to be available as a free download from by July 2012, and will include all sponsor details.
    (2) Plus get up to fifty free copies of Changing the World with AccDC, a programmers guide to AWESOMENESS!
    (May be less if desired) Great for dev departments and academic institutions.
    Changing the World with AccDC is scheduled for completion by December 2013, after which all free copies will be mailed.

    Estimated delivery
    0 backers

Funding period

- (45 days)