These statements of architectural principle explain the thinking behind the specifications. These are personal notes by Tim Berners-Lee: they are not endorsed by W3C. They are aimed at the technical community, to explain reasons, provide a framework to provide consistency for for future developments, and avoid repetition of discussions once resolved.
Why doesn't HTML include tags for style? Why can't you put text inside SMIL? Why doesn't CSS include commands to transform a document? Why, in short, does W3C modularize its specification and why in this particular way? This essay tries to make explicit what the developers in the various W3C working groups mean when they invoke words like efficiency, maintainability, accessibility, extensibility, learnability, simplicity, longevity, and other long words ending in -y.
The following principles are fundamental to the design and implementation of effective interfaces, whether for traditional GUI environments or the web. Of late, many web applications have reflected a lack of understanding of many of these principles of interaction design, to their great detriment. Because an application or service appears on the web, the principles do not change. If anything, applying these principles become even more important.
Interfaces exist to enable interaction between humans and our world. They can help clarify, illuminate, enable, show relationships, bring us together, pull us apart, manage our expectations, and give us access to services. The act of designing interfaces is not art and they are not monuments unto themselves. Interfaces do a job and their effectiveness can be measured. They are not just utilitarian, however. The best interfaces can inspire, evoke, mystify, and intensify our relationship with the world.
Interfaces exist to enable interaction
Clarity is job #1
Conserve attention at all costs
Keep users in control
Direct manipulation is best
One primary action per screen
Keep secondary actions secondary
Provide a natural next step
Appearance follows behavior (aka form follows function)
Focus on people their lives, their work, their dreams.
Every millisecond counts.
Simplicity is powerful.
Engage beginners and attract experts.
Dare to innovate.
Design for the world.
Plan for today’s and tomorrow’s business.
Delight the eye without distracting the mind.
Be worthy of people’s trust.
Add a human touch.
Government Digital Service
These guidelines are intended for people building digital services for the GOV.UK domain. … We believe that the work should do the talking, so underneath each of the principles there are examples of how we have applied that thinking in the work released so far.
To increase the success rate of these projects, the U.S. Government needs a new approach. We created a playbook of 13 key “plays” drawn from successful best practices from the private sector and government that, if followed together, will help government build effective digital services.
The guidelines and Success Criteria are organized around the following four principles, which lay the foundation necessary for anyone to access and use Web content. Anyone who wants to use the Web must have content that is:
It can't be invisible to all of their senses.
The interface cannot require interaction that a user cannot perform.
The content or operation cannot be beyond their understanding.
As technologies and user agents evolve, the content should remain accessible.
Software Design Principles
These design principles were developed by and for the Android User Experience Team to keep users' best interests in mind. For Android developers and designers, they continue to underlie the more detailed design guidelines for different types of devices.
Arch Linux defines simplicity as without unnecessary additions, modifications, or complications, and provides a lightweight UNIX-like base structure that allows an individual user to shape the system according to their own needs. In short: an elegant, minimalist approach.
Code-correctness over convenience
Simplicity of implementation, code-elegance, and minimalism shall always remain the reigning priorities of Arch development.
Arch Linux targets and accommodates competent GNU/Linux users by giving them complete control and responsibility over the system.
Arch Linux uses simple tools, that are selected or built with openness of the sources and their output in mind.
By keeping the system simple, Arch Linux provides the freedom to make any choice about the system.
What principles do designers need to understand to create better designs?