Tuesday, 26 March 2013

jQuery Possible exposition of Bug in Cross Browser Event handling


jQuery Possible exposition of Bug in Cross Browser Event handling

First, I have searched and not found a forum or bug list that gives this detail.

I attached a Slider to a Text Area that is a grouped pair within a Sortable, and it's pretty slickl in Firefox, but then went all goofy in IE (7 and 8).

What I discovered was that the "stop" and "start" events of the slider were propagating to parent in IE, but not in Firefox.

Through research, I discovered that one can manually stop propagation on an event (event.stopPropagation()), but my real observation is that the default behavior is different from these two (common) browsers.  For those who have dug deeper in the design, should this be a bug in "Slider" that would implement a default "stop" and "start" that do not propagate events so as to be browser consistent? Or does this expose a larger difference in expectations of "bubbling" between browsers that would perhaps fix many issues?  Is there, for instance, a common "default" function that can be added in the lower level code?

(sorry for including code here, but it wouldn't go into Attachments)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html3/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>                                 <!-- begin head -->
    <title>Slider in Group Test for Browser Consistency</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <!--  JQuery UI  -->
    <link type="text/css" href="css/dark-hive/jquery-ui-1.8.9.custom.css" rel="Stylesheet">
    <script type="text/javascript" src="js/jquery-1.5.min.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.8.9.custom.min.js"></script>
    <style>
        #msg_group ul {list-style-type: none}
    </style>
    <script language="javascript" type="text/javascript">
      // Startup Declaration
      $(function() {
         // Sortable Message Windows
         $('#msgs').sortable({
           revert: true,
           axis: 'y'
         });

         $('div[id^="ta_slider_"]').slider({
           orientation: "vertical",
           range: "min",
           min: 6,
           max: 20,
           /* 
             // Uncommenting these functions will cause Internet Explorer to behave better... 
             // specifically, slider events won't propagate to the "Sort" mechanism.
             // The real issue to address is, of course, the inconsistency of the default 
             // behavior between browsers.
             
           stop: function(event, ui) {
             event.stopPropagation();
           },

           start: function(event,ui) {
               event.stopPropagation();
           },

           */

           slide: function(event,ui) {
             var idx = this.id.replace(/^ta_slider_/,"");
             var conv = $('#TEXT_AREA_'+idx)[0];
             conv.rows = ui.value;
             conv.cols = ui.value/3 + 34;
           }
         });
      });
        
  </script>
  </head>                      <!-- end head -->
  <body>                       <!-- begin body -->
    <div id="msg_group">       <!-- begin msg_group -->
      <ul id="msgs">
        <li id="MSG_LI_0">
            <table><tr>
                <td><div id="ta_slider_0" /></td>
                <td><textarea id="TEXT_AREA_0" cols="36" rows="6" readonly="true"></textarea></td>
              </tr></table>
        </li>
        <li id="MSG_LI_1">
            <table><tr>
                <td><div id="ta_slider_1" /></td>
                <td><textarea id="TEXT_AREA_1" cols="36" rows="6" readonly="true"></textarea></td>
              </tr></table>
        </li>
        <li id="MSG_LI_2">
            <table><tr>
                <td><div id="ta_slider_2" /></td>
                <td><textarea id="TEXT_AREA_2" cols="36" rows="6" readonly="true"></textarea></td>
              </tr></table>
        </li>
        
      </ul>
    </div>                     <!-- end msg_group -->
  </body>                      <!-- end body -->
</html>

Smilar Topics

  • Cross browser event management done outside of the libraries?

    The topic of event handler management has been covered ... (http://stackoverflow.com/questions/3568753/cross-browser-event-handling) and Marco Demaio (http://stackoverflow ... /questions/3763080/javascript-add-events-cross-browser-function-implementation-use-attachevent-adde ... is generally done for supporting event functionality? There are numerous options ...
  • cross browser event handling

    Below html contains table & a div. both absolute positioned. Table contains a link and onclick event listener. Div also got onclick event listener. Both positioned same so that div borders for link. link and div got onclick eventlistener. click on link fires link onclick. click outside link and within div fires div onclick. above said works for IE only and other browsers link onclcik wont fire if div onclick event listener is there.... My requirement is to keep it working same in all browsers. where click on link fires link onclick listener. and outide link click onl fire div onclick lsitener <table width=50% bgcolor='aqua' style="left:10;top:20;position:absolute "> <tr> <td ><a onclick="alert('clicked link');return false" href="#">click link</a></td> </tr> </table> <div onclick="alert('clicked div');" style="background:transparent;border:1px red solid;;width:300;height:20px;position:absolute;left:10;top:20"></div>
  • Cross browser event handling

    I have a document with a parent element that has mousedown,mouseup and mousemove events registered to it. The parent element has some child elements as well. I observe inconsistent behaviours between browser types when I hold the mouse button down, move the pointer and release the button. ie7 - mouseup fires when over a child or parent op9 - mouseup fires only when over the parent ff2 - mouseup fires only over a child or parent but only if the pointer has moved since the mousedown occured I'm new to events - what can I do to get events to fire (or at least capture them) in the order I want. Tx, Windy
  • jQuery custom error handler around browser event loop?

    ... group. My company is using jQuery to build a very cool ... as much right as possible, including exceptionhandling. I've got a ... during the browser event loop. I know that's not a jQuery thing, but I wonder if jQuerymight have ... update the location of the jquery.js and it should work ... > <script type="text/javascript" src="./jquery-1.2.3.pack.js ...
  • Cross Browser Event Listener

    Here is the cross browser code in adding multiple events in an element inside a document. var addEvent = function ( el , ev , func ) { var evnt = el['on'+ev]; el['on'+ev]= function () { if ( typeof evnt == "function" ) { evnt ();} func (); } }; //example: function ex () { alert(2); } addEvent (window , "load" , (function(){alert(1);})); addEvent ( window, "load" , ex );
  • jQuery Possible Plugin for Adding New Event Types

    ... created an plugin/extension for jQuery to use the following syntax ... ); So you can bind multiple event types to the same function ... allow us to add new event types ... like mouseenter and mouseleave ... 'm curious about what the jQuery community thinks about this idea ... /jquery/plugins/events_extension/test/test.html"> http://www.brandonaaron.net/jquery ... also hook up the mousewheel event in the same way. $(...).bind ... blog post about binding multiple event types: <a href="http://blog ... /bind-multiple-events-simultaneously-with-jquery/">http://blog.brandonaaron.net/2007 ... /bind-multiple-events-simultaneously-with-jquery/ </a> -- Brandon Aaron
  • jQuery Possible Animate Bug

    There seems to be an animate bug with jQuery 1.2. Try animating the css left value of a relatively or absolutely positioned element. For instance, I have an object with a css left value of "-880px". When I call .animate( {left:"-1760px"} ,300, function(){ alert( $ (this).css('left')}), the callback will result in "-2640px", not "-1760px" like it should be. The above code worked in version 1.1.2, not 1.2.
  • jQuery Possible .clone() bug in 1.2.1 on IE6

    I use jQuery extensively to help create "repeatable" elements in some forms. After upgrading from 1.1.4 to 1.2.1, I noticed it stopped working. I finally narrowed down the cause to the (dynamically set) name attribute no longer getting cloned correctly. Is this expected behavior in 1.2.1, or a legitimate bug? Wanted to check here before submitting a bug to the tracker. You can see a sample, with all relevant code in-line, here: http://dev.nosq.com/jquery_name_bug/
  • jQuery Possible Draggable Bug

    Hi, We have detected a buggy behavior of draggable.js on our website with Firefox. After digging a bit, we found that it might be related to the "overflow-y: scroll" css property we use on the HTML element to permanently show the vertical scrollbar. Is it a jqueryui bug or a firefox bug ? I've put online a modified copy of the draggable sample page to show the buggy behavior : http://www.mably.com/dev/draggable.html Just reduce the size of your Firefoxbrowser window to activate the vertical scrollbar, scroll down a bit and start dragging. You'll see the draggable objet jump up the page the same amount you've scrolled the page down. For the moment we have temporarily disabled the overflow-y:scroll css property. Any help would be greatly appreciated. François Masurel Bordeaux, FRANCE
  • jQuery possible to override inline onchange() event?

    I have a select box with an inline "onchange()" event that reloads the page. Using jQuery I've created a $('#myForm select').live('change', function (e){...}) event handler to intercept the onchange() behavior and even though I have e.preventDefault() and e.stopPropagation() after my jquery event runs the inline onchange() is still triggered... Am I missing something here? I realize I could easily remove the onchange() from the code but ideally I shouldn't edit the HTML directly and just override it using jquery...
  • jQuery Possible fadein bug?

    I've worked with Jquery for a while now so ... made things as verbose as possible to identify the problem, but ... a problem! Here's the Jquery and HTML. I'll give ...
  • jQuery Possible Selector Bug?

    Everyone, I was just using jQuery 1.3.1 when I came across an issue in IE7. When I click the button the value for the button will be set to "ON" when using IE7 but it works as expected in FF3: Expected result: Value on hidden field should be set to "ON" when the button is clicked Wrong result: The value for the button changed to "ON" when the button is clicked in IE7 Sample Code: <form> <input type="hidden" name="button" value="" /> <input type="button" id="button" value = "Button" /> </form> <script type="text/javascript"> $(function() { $('#button').click(function(){ $("form input[name='button']").val('ON'); }) }); </script>
  • jQuery + Firefox - Potential bug with hover event?

    I came across this at work using jQuery 1.2.4 and now replicated it at home with jQuery 1.3.2. Instructions and example here: http://www.temega.co.uk/dump/4pqjql.html
  • jQuery ClueTip "custom-width" cross-browser issue

    ... case). Here is my code: jQuery: <script type="text/javascript"> $('a ...
  • jQuery how to make cross browser application with javascript

    hi, I want to make code in javascript for client side.... it is runninf in IE but not in FireFox............Pls Help
  • jQuery IE issue... load order, DOM, event handling... ? help please!

    all. I'm working on a site where id like an image to fade in as the page shows up. The tricky part (i think) is that you can't trace the load of a background image. So ive made a new image dynamically and traced that, assuming that once the image is loaded there, i can insert it to the background, and remove the loading icon (#loadingGal) code follows! (function($) { $.fn.pageOpening = function(path) { $("#loadingGal").show(); var imageObj = new Image(); $(imageObj).attr("src",path).load(function(){ $("#loadingGal").hide(); $("#leftCol").hide(); $("#leftCol").css("background-image","url("+path+")").fadeIn(1000); }); } $(document).ready(function() { $().pageOpening("images/photo-green-homes.jpg"); }); In IE6, the background image does not load and the loading div does not hide. On refresh however, all is fine. I feel this is a loading order issue with IE... or maybe cache. any help is appreciated!
  • jQuery cross browser drag/dragging cursor

    Sure would be nice if the fantastic jQuery ui had the cross browser ability to show a grab and grabbing cursor on things like sort... please... pretty please :-) -- patrick
  • Is it possible to extract the normalized Event object and use it outside of jQuery?

    This is a random question. I'm in a situation where my script can't depend on the full jQuery lib. But it would be nice to extract and use the normalized jquery.Event object. It prevents a lot of cross-browser compatibility boilerplate. Is this possible, advisable, allowed?
  • jQuery Key Event Handling

    Folk, I'm using JQuery 1.3.2 with a ... VML text object, jQuery's registration of mouse event handlers doesn't ... the way the event gets registered? Strangely, the jQuery registration works for ... it. I needed decent text eventhandling for my text edit widget ... can be over-ridden. The browser differences are as listed here ... total dog's breakfast, and jQuery in trying to fix it ... the arrow, unlike the "fixed" event). Some of the mess is ... 's textInputevent type, and I don't know enough jQuery to ...
  • Qwerty Shifter (keyboard event handler) cross browser

    I am trying to develop a Qwerty Shifter http://www.cross-browser.com/toys/qwertyshifter.html by handlingkeyboard events. I want to display a textbox and as user type any text it changes at once means as user types "a" it display "s" "b" changes "n" for internet explorer I have script function InputEventKeyPress(event){ window.event.keyCode = shifter (window.event.keyCode); } //Key press function shifter (keyAscii) { switch (keyAscii){ //CAPITAL LETTERS A - Z case 65 : return 83; break; //A case 66 : return 78; break; //B case 67 : return 86 ; break; //C } }
  • jQuery Qwerty Shifter (keyboard event handling)

    Hi I am trying to develop a Qwerty Shifter http://www.cross-browser.com/toys/qwertyshifter.html by handlingkeyboard events. I want to display a textbox and as user type any text it changes at once means as user types "a" it display "s" "b" changes "n" for internet explorer I have script BUT want a cross browser solution for this function InputEventKeyPress(event){ window.event.keyCode = shifter (window.event.keyCode); } //Key press function shifter (keyAscii) { switch (keyAscii){ //CAPITAL LETTERS A - Z case 65 : return 83; break; //A case 66 : return 78; break; //B case 67 : return 86 ; break; //C } }
  • Definitive answer to cross-browser window.onunload event

    Hi Am I correct in saying that since Opera does not reliably implement the window.onunload event, that it is NOTpossible to create a predictable cross-browser trap that executes a script on window close? If there is a way to ensure trapping of the onunload event across all browsers, then please let me know.
  • jQuery Cross-Browser "on variable change" call back

    ... , but maybe there is elegant jQuery solution for it. I want ... to objects member variable change event i.e. lets say I ... cross-browser solution for this? P.S. I remember there was a jQuery ...
  • add a print event to jquerypossible ?

    ... : is it possible to catch the print event via javascript/ jquery? </FONT></SPAN ... , and in fact it is possibleto overwrite the window.print ... it be possible to therefore to include a "print" event to jquery, which ... disable this on a print() event...</SPAN></PRE><PRE><SPAN class ...
  • jquery 1.2 bug -- clone(true) doesn't copy the event in ie(ie6 and ie7)

    jquery 1.2 bug -- clone(true) doesn't copy the event in ie(ie6 and ie7)
  • Cross browser problem in JQuery 1.2.1, Run on FF1.5 but not IE6

    ... if this is really a cross browser problem or my misunderstanding, I ... ="jquery/jquery-1.2.1.min.js"></ script> <script language="javascript" src="jquery/jquery ... that highlighted by debugger: r=jQuery.merge(r,ret[i].getElementsByTagName ...
  • 3rd party code interference with responsive jquery event handling

    I can't imagine my situation is very unique so I must be failing to see the trees through the forest. 1) We have a site that has a number of JQuery style event handlers. By this I mean we use the ready to apply event bindings based on jq selectors. 2) We have 3rd party JS which we have no control over. Some of it has a tendency to load slowly. In addition it depends on document.write. So when the 3rd party code runs slow it delays the JQ ready which means our page is largely rendered, but the event handling is broken. This results in a horrible UX. I can't AJAX load the script and eval it because then then the document.write will produce is content out of the intended context of the DOM. I have been trying to use regular DOM methods to add the script element in the correct location at the end of the JQ ready so it happens after the events are bound without luck so far. Do any of the experienced JQ users have a recommendation on how to handle 3rd party widgets and event binding?
  • jQuery Event handling, bubbling, and SELECT change

    ... seems to me that an event fires on a SELECT element ... between the two kinds of event firing (window just loading versus ... context: http://www.nabble.com/Event-handling%2C-bubbling%2C-and-SELECT ... -tp20777794s27240p20777794.html Sent from the jQuery General Discussion mailing list archive ...
  • jQuery js cross browser compatibility functions

    Hi i am very new to jquery and have heard that it contains functions that hide and handle the cross browserissues behind the scenes? could any provide link where i could find out more about this please?

Web standards checklist


Web standards checklist

Date: 13 August 2004
Author: Russ Weakley

Web standards – more than just ‘table-free sites’

The term web standards can mean different things to different people. For some, it is ‘table-free sites‘, for others it is ‘using valid code‘. However, web standards are much broader than that. A site built to web standards should adhere to standards (HTML, XHTML, XML, CSS, XSLT, DOM, MathML, SVG etc) andpursue best practices (valid code, accessible code, semantically correct code, user-friendly URLs etc).
In other words, a site built to web standards should ideally be lean, clean, CSS-based, accessible, usable and search engine friendly.

About the checklist

This is not an uber-checklist. There are probably many items that could be added. More importantly, it should not be seen as a list of items that must be addressed on every site that you develop. It is simply a guide that can be used:
  • to show the breadth of web standards
  • as a handy tool for developers during the production phase of websites
  • as an aid for developers who are interested in moving towards web standards

The checklist

  1. Quality of code
    1. Does the site use a correct Doctype?
    2. Does the site use a Character set?
    3. Does the site use Valid (X)HTML?
    4. Does the site use Valid CSS?
    5. Does the site use any CSS hacks?
    6. Does the site use unnecessary classes or ids?
    7. Is the code well structured?
    8. Does the site have any broken links?
    9. How does the site perform in terms of speed/page size?
    10. Does the site have JavaScript errors?
  2. Degree of separation between content and presentation
    1. Does the site use CSS for all presentation aspects (fonts, colour, padding, borders etc)?
    2. Are all decorative images in the CSS, or do they appear in the (X)HTML?
  3. Accessibility for users
    1. Are “alt” attributes used for all descriptive images?
    2. Does the site use relative units rather than absolute units for text size?
    3. Do any aspects of the layout break if font size is increased?
    4. Does the site use visible skip menus?
    5. Does the site use accessible forms?
    6. Does the site use accessible tables?
    7. Is there sufficient colour brightness/contrasts?
    8. Is colour alone used for critical information?
    9. Is there delayed responsiveness for dropdown menus (for users with reduced motor skills)?
    10. Are all links descriptive (for blind users)?
  4. Accessibility for devices
    1. Does the site work acceptably across modern and older browsers?
    2. Is the content accessible with CSS switched off or not supported?
    3. Is the content accessible with images switched off or not supported?
    4. Does the site work in text browsers such as Lynx?
    5. Does the site work well when printed?
    6. Does the site work well in Hand Held devices?
    7. Does the site include detailed metadata?
    8. Does the site work well in a range of browser window sizes?
  5. Basic Usability
    1. Is there a clear visual hierarchy?
    2. Are heading levels easy to distinguish?
    3. Is the site’s navigation easy to understand?
    4. Is the site’s navigation consistent?
    5. Does the site use consistent and appropriate language?
    6. Does the site have a sitemap page and contact page? Are they easy to find?
    7. For large sites, is there a search tool?
    8. Is there a link to the home page on every page in the site?
    9. Are links underlined?
    10. Are visited links clearly defined?
  6. Site management
    1. Does the site have a meaningful and helpful 404 error page that works from any depth in the site?
    2. Does the site use friendly URLs?
    3. Do your URLs work without “www”?
    4. Does the site have a favicon?

1. Quality of code

1.1 Does the site use a correct Doctype?

A doctype (short for ‘document type declaration’) informs the validator which version of (X)HTML you’re using, and must appear at the very top of every web page. Doctypes are a key component of compliant web pages: your markup and CSS won’t validate without them.
More:

1.2 Does the site use a Character set?

If a user agent (eg. a browser) is unable to detect the character encoding used in a Web document, the user may be presented with unreadable text. This information is particularly important for those maintaining and extending a multilingual site, but  declaring the character encoding of the document is important for anyone producing XHTML/HTML or CSS.
More:

1.3 Does the site use Valid (X)HTML?

Valid code will render faster than code with errors. Valid code will render better than invalid code. Browsers are becoming more standards compliant, and it is becoming increasingly necessary to write valid and standards compliant HTML
More:

1.4 Does the site use Valid CSS?

You need to make sure that there aren’t any errors in either your HTML or your CSS, since mistakes in either place can result in botched document appearance.
More:

1.5 Does the site use any CSS hacks?

Basically, hacks come down to personal choice, the amount of knowledge you have of workarounds, the specific design you are trying to achieve.
More:

1.6 Does the site use unnecessary classes or ids?

I’ve noticed that developers learning new skills often end up with good CSS but poor XHTML. Specifically, the HTML code tends to be full of unnecessary divs and ids. This results in fairly meaningless HTML and bloated style sheets.

1.7 Is the code well structured?

Semantically correct markup uses html elements for their given purpose. Well structured HTML has semantic meaning for a wide range of user agents (browsers without style sheets, text browsers, PDAs, search engines etc.)
More:

1.8 Does the site have any broken links?

Broken links can frustrate users and potentially drive customers away. Broken links can also keep search engines from properly indexing your site.
More:

1.9 How does the site perform in terms of speed/page size?

Don’t make me wait… That’s the message users give us in survey after survey. Even broadband users can suffer the slow-loading blues.

1.10 Does the site have JavaScript errors?

Internet Explore for Windows allows you to turn on a debugger that will pop up a new window and let you know there are javascript errors on your site. This is available under ‘Internet Options’ on the Advanced tab. Uncheck ‘Disable script debugging’.

2. Degree of separation between content and presentation

2.1 Does the site use CSS for all presentation aspects (fonts, colour, padding, borders etc)?

Use style sheets to control layout and presentation

2.2 Are all decorative images in the CSS, or do they appear in the (X)HTML?

The aim for web developers is to remove all presentation from the html code, leaving it clean and semantically correct.

3. Accessibility for users

3.1 Are “alt” attributes used for all descriptive images?

Provide a text equivalent for every non-text element

3.2 Does the site use relative units rather than absolute units for text size?

Use relative rather than absolute units in markup language attribute values and style sheet property values’
More:

3.3 Do any aspects of the layout break if font size is increased?

Try this simple test. Look at your website in a browser that supports easy incrementation of font size. Now increase your browser’s font size. And again. And again… Look at your site. Does the page layout still hold together? It is dangerous for developers to assume that everyone browses using default font sizes.

3.4 Does the site use visible skip menus?

A method shall be provided that permits users to skip repetitive navigation links.
Group related links, identify the group (for user agents), and, until user agents do so, provide a way to bypass the group
…blind visitors are not the only ones inconvenienced by too many links in a navigation area. Recall that a mobility-impaired person with poor adaptive technology might be stuck tabbing through that morass.

3.5 Does the site use accessible forms?

Forms aren’t the easiest of things to use for people with disabilities. Navigating around a page with written content is one thing, hopping between form fields and inputting information is another
More:

3.6 Does the site use accessible tables?

For data tables, identify row and column headers… For data tables that have two or more logical levels of row or column headers, use markup to associate data cells and header cells.
More:

3.7 Is there sufficient colour brightness/contrasts?

Ensure that foreground and background colour combinations provide sufficient contrast when viewed by someone having colour deficits
More:

3.8 Is colour alone used for critical information?

Ensure that all information conveyed with colour is also available without colour, for example from context or markup
There are basically three types of colour deficiency; Deuteranope (a form of red/green colour deficit), Protanope (another form of red/green colour deficit) and Tritanope (a blue/yellow deficit- very rare).
More:

3.9 Is there delayed responsiveness for dropdown menus?

Users with reduced motor skills may find dropdown menus hard to use if responsiveness is set too fast.

3.10 Are all links descriptive?

Link text should be meaningful enough to make sense when read out of context – either on its own or as part of a sequence of links. Link text should also be terse.

4. Accessibility for devices

4.1 Does the site work acceptably across modern and older browsers?

Before starting to build a CSS-based layout, you should decide which browsers to support and to what level you intend to support them.

4.2 Is the content accessible with CSS switched off or not supported?

Some people may visit your site with either a browser that does not support CSS or a browser with CSS switched off. In content is structured well, this will not be an issue.

4.3 Is the content accessible with images switched off or not supported?

Some people browse websites with images switched off – especially people on very slow connections. Content should still be accessible for these people.

4.4 Does the site work in text browsers such as Lynx?

This is like a combination of images and CSS switched off. A text-based browser will rely on well structured content to provide meaning.
More:

4.5 Does the site work well when printed?

You can take any (X)HTML document and simply style it for print, without having to touch the markup.
More:

4.6 Does the site work well in Hand Held devices?

This is a hard one to deal with until hand held devices consistently support their correct media type. However, some layouts work better in current hand-held devices. The importance of supporting hand held devices will depend on target audiences.

4.7 Does the site include detailed metadata?

Metadata is machine understandable information for the web
Metadata is structured information that is created specifically to describe another resource. In other words, metadata is ‘data about data’.

4.8 Does the site work well in a range of browser window sizes?

It is a common assumption amongst developers that average screen sizes are increasing. Some developers assume that the average screen size is now 1024px wide. But what about users with smaller screens and users with hand held devices? Are they part of your target audience and are they being disadvantaged?

5. Basic Usability

5.1 Is there a clear visual hierarchy?

Organise and prioritise the contents of a page by using size, prominence and content relationships

5.2 Are heading levels easy to distinguish?

Use header elements to convey document structure and use them according to specification

5.3 Is the site’s navigation easy to understand?

Your navigation system should give your visitor a clue as to what page of the site they are currently on and where they can go next.

5.4 Is the site’s navigation consistent?

If each page on your site has a consistent style of presentation, visitors will find it easier to navigate between pages and find information

5.5 Does the site use consistent and appropriate language?

The use of clear and simple language promotes effective communication. Trying to come across as articulate can be as difficult to read as poorly written grammar, especially if the language used isn’t the visitor’s primary language.

5.6 Does the site have a sitemap page and contact page? Are they  easy to find?

Most site maps fail to convey multiple levels of the site’s information architecture. In usability tests, users often overlook site maps or can’t find them. Complexity is also a problem: a map should be a map, not a navigational challenge of its own.

5.7 For large sites, is there a search tool?

While search tools are not needed on smaller sites, and some people will not ever use them, site-specific search tools allow users a choice of navigation options.

5.8 Is there a link to the home page on every page in the site?

Some users like to go back to a site’s home page after navigating to content within a site. The home page becomes a base camp for these users, allowing them to regroup before exploring new content.

5.9 Are links underlined?

To maximise the perceived affordance of clickability, colour and underline the link text. Users shouldn’t have to guess or scrub the page to find out where they can click.

5.10 Are visited links clearly defined?

Most important, knowing which pages they’ve already visited frees users from unintentionally revisiting the same pages over and over again.

6. Site management

6.1 Does the site have a meaningful and helpful 404 error page that works from any depth in the site?

You’ve requested a page – either by typing a URL directly into the address bar or clicking on an out-of-date link and you’ve found yourself in the middle of cyberspace nowhere. A user-friendly website will give you a helping hand while many others will simply do nothing, relying on the browser’s built-in ability to explain what the problem is.

6.2 Does the site use friendly URLs?

Most search engines (with a few exceptions – namely Google) will not index any pages that have a question mark or other character (like an ampersand or equals sign) in the URL… what good is a site if no one can find it?
One of the worst elements of the web from a user interface standpoint is the URL. However, if they’re short, logical, and self-correcting, URLs can be acceptably usable
More:

6.3 Does the site’s URL work without “www”?

While this is not critical, and in some cases is not even possible, it is always good to give people the choice of both options. If a user types your domain name without the www and gets no site, this could disadvantage both the user and you.

6.4 Does the site have a favicon?

A Favicon is a multi-resolution image included on nearly all professionally developed sites. The Favicon allows the webmaster to further promote their site, and to create a more customized appearance within a visitor’s browser
Favicons are definitely not critical. However, if they are not present, they can cause 404 errors in your logs (site statistics). Browsers like IE will request them from the server when a site is bookmarked. If a favicon isn’t available, a 404 error may be generated. Therefore, having a favicon could cut down on favicon specific 404 errors. The same is true of a ‘robots.txt’ file.

More about this list

Angular Tutorial (Update to Angular 7)

As Angular 7 has just been released a few days ago. This tutorial is updated to show you how to create an Angular 7 project and the new fe...