Electronic Thesis and Dissertation Repository


Master of Science


Computer Science


Dr. Jamie Andrews


As the population of disabled people continues to grow, designing accessible applications is still a challenge, since most applications are incompatible with assistive technologies used by disabled people to interact with the computer. This accessibility issue is usually caused by the reluctance of software engineers or developers to include complete accessibility features in their applications, which in turn is often due to the extra cost and development effort required to dynamically adapt applications to a wide range of disabilities. Our aim to resolve accessibility issues led to the design and implementation of the "Johar" framework, which facilitates the development of applications accessible to both disabled and non-disabled users. In the Johar architectural model, the ability-based front-end user interfaces are called interface interpreters, while the application-specific logic or functionality implemented by application developers are called applications or apps. The seamless interaction between each interface interpreter and app is made possible by Johar.

In this thesis, we assure the quality of Johar by detecting and resolving many inconsistencies, omissions, irrelevancies, and other anomalies that can trigger unexpected or abnormal behaviour in Johar, and/or alter the smooth operation of interface interpreters and apps. Our approach to conducting the quality assurance involved reviewing the two components of Johar, johar.gem and johar.idf, by critically examining the functionality of classes in each component, including how classes interrelate and how functions are allocated or distributed among the classes. We also performed an exhaustive comparative review of four documents - IDF Format Specification document, XML Schema Document or XSD, the Interface Interpreter Specification document, and the johar.idf package - which are vital to the smooth running of all interface interpreters and apps. We also developed an automated testing tool in order to determine whether all errors or violations in an IDF (Interface Description File) are detected and reported.

As part of this thesis, we designed and implemented an interface interpreter, called Star that presents WIMP (Windows, Icons, Menus, and Pointers) graphical user interfaces to users, which is based on the "new version" of Johar. This new version evolved as a result of the redesign activities carried out on the Johar components and the various modifications effected during the quality assurance process. We also demonstrated the usage of Star on two apps to prove Johar’s ability to guarantee smooth interaction between interface interpreters and apps. Finally, in this thesis, we designed two other interface interpreters which will be implemented in the near future.