Rich semantics are the Holy Grail for automated analysis tools; combined with extensible, familiar, and reusable tools and techniques we can seriously cut the costs associated with robust user interface development and testing.
Previously, we discussed the set of tools available for validating and linting HTML5-based user interfaces; (eg: the W3C, numerous HTML/CSS editors, and tools like HTML Lint). These tools help to identify syntactic issues, but what else is possible? The syntactic (and limited semantic) checks that these tools perform are necessary, but they aren't sufficient to cover the body of intricate failures that can occur while creating the rich user experiences we've come to expect from interactive web applications and mobile devices. Linters and Validators can't, for example, find bugs relating to the visual layout, and with good reason: Checking a UI is hard; it's repetitive, monotonous, and more importantly, subjective work.
However, there is still room for improvement. Surely we can push the envelope to do more. What's next, and how can we automate tasks that still challenge human analysts?
The first important insight is that many general guidelines for creating a good user interface have quantitative approximations. For example, the Windows 7 guidelines state:
Use title-style capitalization for titles, and sentence-style capitalization for all other UI elements.
Write the label as a phrase or an imperative sentence, and use no ending punctuation.
In the words of Richard Anderson: We have the technology! Which brings us to the first of a few key areas or techniques that could improve the tools that help ensure UI Consistency.