Restful Development: Practical Design Guidelines for Web and Database Software
Restful Development is a management and architectural style advocating pragmatic practice with appropriate industry standards.
The links provided below are cited as references and lead to supporting material on other websites.
Despite the occasional protestations to the contrary there are Research Based Web Design & Usability Guidelines [usability.gov] and Guidelines for Web Credibility [webcredibility.org] that should be familiar to all web database software developers along with Differences Between Print Design and Web Design [useit.com].
"Restful" URLs and FORM actions
-
GET should not have direct effects and anything which does not have direct should use GET. Bookmarked, linked or hacked URLs should be usable as navigation devices including the search, sort, and paging of data for reporting.
"GET operations (as happen when you follow a regular hypertext link) are fundamentally different from POST operations (as happen when you submit a form to order a book), The first is reversible, has no long term effect, cannot commit a user to anything. The latter does commit the user." - Tim Berners-Lee [w3.org]
-
Support deep linking, a natural by-product of recommended HTTP GET usage. Deep linking enhances usability by providing a direct path for users to access information and facilitates popular indexing technologies.
-
Use the presence or absence of a value in specific FORM variables should be used to initiate all actions. For most web database applications this will includes all user initiated INSERT, UPDATE and DELETE of data.
-
If two pages make sense only when viewed in the proper sequence, such as a login page, the dependent link should work once the first page has been seen.
-
All system messages directed to a user must be explicit, polite, and human-readable indications of current status and available options. The information conveyed by a web database application may be surprising or even highlighted on the interface. However, it is generally inappropriate for applications themselves to be act in a surprising (or humorous or cute or clever or rude) manner unless it is part of a well-considered attempt to entertain as well as inform.
-
Errors in response to FORM POST or other stateful action should attempt to preserve as much of a user's work as possible without violating security policy should be preserved. For database applications, support for the quick resubmission of modified values after failure of UPDATE INSERT or DELETE commands are required.
-
Support, rather than hinder normal operation of the Back Button, bookmarks, history and other basic features of popular web browsers.
-
New browser windows should only be opened to follow external links or in response to an explicit user request for a pop-up form closely related to the current page.
HTML / CSS Usage
-
At a minimum HTML output should validate as compliant with the w3c HTML 4.x Transitional Standard with external CSS Level 1 Stylesheet Formatting (or better) and the use deprecated HTML tags is strongly discouraged. For better forward-compatibility with XHTML, all eligible HTML tags should be properly closed with attribute names in lower case with double quoted values. Compliance with these standards has the practical effect of eliminating the most common causes of unreadable program output in browsers all the way back to Netscape 2.0.
-
At a minimum, applications should implement least A level compliancy with current Web Accessibility Initiative Standard [w3.org] (WAI) from the World Wide Web Consortium (W3C). US Government Section 508 Standards for Electronic and Information Technology [access-board.gov] must be followed for certain types of websites but should also be implemented whenever practical on other projects.
-
To implement "A method shall be provided that permits users to skip repetitive navigation links." 36 C.F.R. § 1194.22(o), repetitive navigation links are prefaced with an <a>l tag that encloses no content to skip. These links do not appear in visual web browsers displays.
-
To implement "A text equivalent for every non-text element shall be provided (e.g., via 'alt', 'longdesc', or in element content)." 36 C.F.R. § 1194.22(a), all non-text element on all page have a text equivalent via "alt" (alternative text attribute) or a meaningful description of the non-text element in the text accompanying the non-text element.
-
To implement "Documents shall be organized so they are readable without requiring an associated style sheet." 36 C.F.R. § 1194.22(d), pages are viewable without style sheets or with style sheets turned off or with style sheets not supported by the browser. Pages are designed to not interfere with style sheets set by the browser.
-
To implement "Markup shall be used to associate data cells and header cells for data tables that have two or more logical levels of row or column headers." 36 C.F.R. § 1194.22(h) preformatted data tables using the <pre> tag are not used. Row headers are not used. Each cell in provides identification of row and column headers.
-
To implement "Pages shall be designed to avoid causing the screen to flicker with a frequency greater than 2 Hz and lower than 55 Hz." 36 C.F.R. § 1194.22(j), the use of animated gifs as well as non-HTML content such as applets or plug-ins is simply not supported.
-
To implement "Row and column headers shall be identified for data tables." 36 C.F.R. § 1194.22(g) and assist screen readers, id attributes should be provided for <th> tags in data tables with a corresponding headers attribute for associated <td> tags.
-
To implement "Web pages shall be designed so that all information conveyed with color is also available without color, for example from context or markup." 36 C.F.R. § 1194.22(c) all data and navigational components are capable of being understood and navigated even if users do not have the ability to identify specific colors or differentiate between colors.
-
Links in text should be displayed as underlined 1) to ensure readability of these essential design components, and 2) to make them more prominent targets for clicking.
-
The usability of iconic links is often inferior to that of simple, direct text links. Iconic links and buttons should include a suitable legend with sensible ALT and LABEL attributes provided.
-
HTML should "flow" and not use absolute positioning to simplify support for diverse display technology.
-
Scrolling text and looping animations are generally discouraged as distracting.
Multimedia Content
Adobe/Marcomedia's Flash technology is the preferred format for presenting web friendly multimedia. It is the only widely deployed, de facto standard HTML alternative.
Printed Content
PDF (using standard fonts) is the preferred format for precise control of printable output.
Other Client Side Controls
Use of browser Plug-Ins or Active-X components that do not enjoy the status of being de facto industry standards are generally discouraged. Use of these technologies for crucial site wide functionality such as menu or navigational is strongly discouraged.
References