role= tag on sections within visible Views.Rational: Marking page sections with location roles are important to low-vision users, so that low-vision reader users can use a single key to skip the chaff, and jump to a section of interest (eg: “skip to navigation”, “skip to search”, *“skip to main content”, etc). Screen reader can use a single key to jump to each of these sections and know what the section's function is.
Rational: Marking page sections with information as to what they are for is important to low-vision users, so that low-vision reader users can use a single key to skip the chaff, and jump to a section of interest (eg: “skip to navigation”, “skip to search”, *“skip to main content”, etc). Screen readers can use a single key to jump to each of these sections and know what the section's function is.
Note that not all browsers can read these tags, so the current recommendation is to double up (eg: marking footer with role="contentinfo").
These Web specific Requirements are extensions of Usability/
Rational: Responsiveness. Every request, whether it be for the page, images on the page, css, or javascript, sends headers (including cookies), and processes cookies. In addition, depending on the server only a small number of connections can be done at the same time (eg: 4), causing staggering of requests, therefore slow rendering. The less number of requests, the better.
Combine files: Combine JScript. Combine CSS. Use CSS Sprites.
Rational: Performance. Browsers cache content via url, not filename. This means that if they have visited beforehand another site that has used the same CDN hosted resource (eg: JQuery-latest), the files are already available in their cache, decreasing bandwidth consumed, as well as decreasing response time.
Rational: Responsiveness
Rational: Performance
For static content, set to 6 months in future, and add a Version No to the filename…
For dynamic content, use Cache-Control
Rational: Responsiveness
GZip is supported by 90% of current browsers, reduces payload by 70%.
Rational: Responsiveness
This allows progressive rendering, rather than a blank page while waiting, then an initial rendering, then a subsequent repositioning when the css finally comes in.
.
Rational: Responsiveness. Scripts block parallel loading - even across domains - so no images, or anything can come in till finished.
Rational: Deprecated in IE8. Was too CPU Intensive.
Responsiveness. Externalized as files (rather than Inline) means they can be cached by the browser.
External code files are easier to debug (current Browser developer tools cannot breakpoint inline code).
Rational: Avoid Redirects improves performance
* [NFR:8r38u:SHOULD:Responsivity] Remove Duplicate Scripts15)
Obvious…but it happens in 20% of sites.
Configure them for webfarms
Right after Head, so that it can go get css, etc. while waiting for server to build rest of page.
Rational: Responsivity. POST is a two step process.
Load non-visible images later (see YUI Image Loader, and YUI Get utitity)
For future pages…
Rational:Responsivity. They are sent out with every request (images, css, etc.). That means more bandwidth, and time to process.
Rational:large images scaled to fit in small screens means that large images were sent anyway.
Rational:Can cause 404's, will send cookies, is downloaded first…
Rational:iPhone won't cache things larger than 25K. Which means that the same image, css, script file will be re-retrieved on the next page view.
* [NFR:8syrs:SHOULD] When releasing an ASP.NET front-end on IIS: turn off debug="true" in web.config.
FastCGI MaxInstances to 0Consider using Attributes on the ViewModels – better yet the Views themselves, but with a system to automatically port the Attributes to ViewModels used to represent them. Render the Attributes as JSON. Render the JSON to the Client, which uses client side code to convert the JSON into clientside code appropriate to the rendering technology chosen.
### Responsiveness ###
Rational: pages that are too slow to load wipe out whole continents of users 26)
Rational:Mobile usage is surpassing traditional desktops. Internally, this is not yet the case, but will be so during the lifetime of most apps starting from this point forward. Due to the characteristics of chunked cell phone communication, a page load is much more responsive if it all fits within a single chunk.
## Resources ##