Interface Design

The Lab Rubric specifies that if the assignment requires designing and laying out user interface elements, the student will be able to do so using code.

In some programming classes (for example, CIS 133B and CIS 233B), students are required to design and build a GUI for their programs. In most programming languages and development environments, there are two ways to accomplish this:

  1. Many development environments include WYSIWYG interface builders where the programmer can drag and drop user interface elements onto a form, drag handles on those elements to resize them, change properties such as color, label text, and so on, and connect these interface elements to actions that the program will perform when the program is running.
  2. Most programming languages include user interface libraries that programs can use to create instances of windows, dialogs, buttons, labels, and other user interface elements. Programs written using these libraries can often explicitly control the size, location, appearance, and in some cases the layout of these elements through code.

Generally speaking, a blind student will be unable to construct a user interface using a WYSIWYG interface building tool. Even for development environments that are mostly accessible, it is often the case that interface building tools will lack keyboard shortcuts and will be incompatible with screen reading software. In addition, students with motor control impairments may also find it difficult to use these tools with sufficient accuracy. Whenever possible, if an existing lab requires the use of a WYSIWYG interface building tool, consider whether any of these other approaches can be used as an alternative:

Any of the above alternatives may enable the student to complete the remainder of the lab. However, it is worth noting that accommodations should not require a fundamental change to the learning outcomes for the course. If one or more learning outcomes are centered around interface design, and the course is dedicated to learning a particular programming language or development environment for which no accessible alternative exists, then it may be more appropriate for Disability Services to warn the student that there will be accessibility issues in the class. However, it is the student's right to make the ultimate decision as to whether to sign up for the course.

Accessibility Survival Guide for Instructors, © 2014 by their respective authors, Marc Goodman, Gayathri Iyer, Supada Amornchat, Karen Sorensen, and Susan Watson