Introduction
The Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA) specification is a way of making Web content and Web applications more accessible to people with disabilities and plays nice with applications created with Ajax and JavaScript. For the rest of the article we will use ARIA instead of WAI-ARIA.
ARIA is a set of attributes helping assistive technologies such as Screen Readers for the blind make sense of certain elements that aren't native to HTML by helping enhance the semantics of the Web APP or website.
After years of development, testing and refining on March 20, 2014, W3C finally published the WAI-ARIA standard version 1.0.
Duplicating functions or emulating the rich components and maximizing the HTTP requests in the background tends to enrich the user experience. But for assistive technologies like screen readers it is a nightmare, they will fail for accessibility problems. If we build widgets or rich components this way then they may be barely accessible via keyboards on screen readers, the function of the widget may not be available for assistive technology, the properties of rich component may not be inherited, updates and discovery of updates will not be recorded and reported by assistive technology.
Assistive technology is an umbrella term that includes assistive, adaptive and rehabilitative devices for people with disabilities and also includes the process used in selecting, locating and using them. Assistive technology promotes greater independence by enabling people to perform tasks that they were formerly unable to accomplish, or had great difficulty accomplishing, by providing enhancements to, or changing methods of interacting with, the technology needed to accomplish such tasks.
The preceding excerpt is from the Wikipedia, for more on Assistive technology we fortunately have something to rescue from the preceding shortcomings, in other words ARIA. It allows developers to create rich Internet applications and yes it is easy to implement as well.
ARIA exists from simple renderings of certain attributes on Screen Readers to render widgets as a whole number system or sometimes hierarchical tree views, if needed. We can do that by simply applying roles and state attributes, supported from HTML 4.1 or above.
ARIA doesn't influence browser behavior unlike real button elements. This means we need to implement a behavioral pattern manually from the keyboard. There is no harm in using ARIA in your sites since all major browsers have support for it since it is now a standard but we should use ARIA only if needed. This will provide better hands-on native HTML widgets and rendering.
One thing to note here is that ARIA markup takes precedence over the host language markup.