Texas Gas Service Homepage

Another accessibility disaster. It’s great that people are finding creative ways to use JavaScript but it is not okay to ignore progressive enhancement techniques.

Your users should never see this instead of content:

Our site requires javascript, please enable javascript and refresh the browser window.

JS frameworks do a disservice to the Web after all the innovation and hard work that has gone into creating a separation model for content, presentation and client-side scripting.

drawing of a peanut M&M candy showing content as the peanut, presentation as the chocolate layer and client-side scripting as the candy shell
Layering content, presentation and client-side scripting – Drawing by Dave Stewart

The Texas Gas Service website gives us lots of examples. Let’s see how well we can use the site without a mouse, a.k.a tabbing through.

(Step 0: What is with this trend to play videos as background images? I thought we learned this lesson years ago. Having movement your users can’t disable is annoying and bad practice. Stop it.)

screenshot of the Texas Gas Service home page with user login form
Texas Gas Service homepage
  1. Links I can’t click; let me count the ways
    From the “I want to…” select menu to the hamburger menu to the footer, dozens of “links” are not marked up as <a href> and cannot be tabbed to, nor would they be read as links by a screen reader.

    screen shot of the expanded I want to... menu
    These aren’t links

    This is lazy and wrong. If something is a link, make it a link. Fake links achieved with JS only are a large accessibility barrier.

    <div click.delegate="goTo('home', true)" class="btn pill-btn white-fill-btn au-target" show.bind="!session.loggedIn" au-target-id="111">Pay my bill</div>

  2. Tabbing order fail
    The tabindex attribute can be a really useful tool. It can also completely screw up a user’s ability to access important information, like the “username” field. When I could not tab to the “username” field, I looked at the code and saw the field was set to tabindex=-1. I had to look this one up. Here’s a 2014 explanation from The Paciello Group:

    When tabindex is set to a negative integer like -1, it becomes programmatically focusable but it isn’t included in the tab order. In other words, it can’t be reached by someone using the tab key to navigate through content, but it can be focused on with scripting.

    From my perspective as a customer who visits this page, being able to log in is the number one user story but it isn’t possible using a keyboard.

  3. Form validation errors
    The only time the “username” field seems to get focus is if that field is empty when clicking the “Login” button. Plenty of client-side field validation solutions work without removing a field from the tabbing order.

    screen shot of the login form with validation errors for the empty username and password fields
    Login form validation errors with login button disabled

    If a user tries to login with bad data, a small modal window with a an unhelpful developer-style error message of “Login failed” appears at the top right of the page. There is no associated help text about the causes of the error, or which fields have errors, and focus is removed from the form making it that much harder to update the data.

    screenshot of the error message login failed in a modal window
    Login failed error modal window

    Adding to the confusion is the little green check in both fields indicating what would usually mean the field data is valid. But for this form, a green check merely indicates that a field isn’t blank. There isn’t any robust client-side validation occurring at all.

Pet peeve: What is the point of removing the browser scrollbar from the page? It provides a simple and useful way to indicate where I am on the page. This is something I really miss on mobile devices.

Bad Forms – WHY?


So easy to get right, yet so often poorly constructed.

Today I came across this gem with a contrast ratio of 1.26:1, as in barely above 1:1 which is invisible. Gray on white should always have contrast checked.screen shot of a form fields with light gray text on white

Other form infractions include

  • Using placement text as labels. Once a user starts typing, it’s no longer clear what information was requested or what format the data should be in.
  • When tabbing through the form, there is no visual indicator when you’re on a select field or a button.
  • I just don’t see the point in trying to reinvent the form experience. In this case, they’ve chosen a skeuomorph design, attempting to recreate a paper form experience digitally.
  • I like the address suggestion but it’s not possible to tab to it and select anything.screen shot of the address field with a drop down of address suggestions
  • I could not tab through the t-shirt size options and select anything using the arrow keys, even though these were coded as radio buttons.
    screen shot of the t-shirt form field with circles for each sizeUsing the browser inspector, I unhid the radio buttons and then could tell that after I made a selection, I was tabbing through the radio buttons.
    screen shot of selected radio button for shirt size
  • It was really hard to tell if I could tab to the submit button without visual indication. Adding a button focus style with the inspector showed that it was getting focus.

So much has been written about the IA of good forms, the proper markup of form elements and form usability, it’s amazing to me designers don’t follow a known pattern for an account creation process. It’s not the time to get fancy.

Feedback Request – Listen360

This week, I received an automated email with the title “Business Name – Feedback Request” containing a sort-of likert scale asking how likely I’d be to recommend them to a “friend or business associate”.

Numbers 0 - 10 rating scale shaped like a keypad
Likert scale keypad design

My feedback on this survey design from Listen360.

The design is just weird

I’ve never seen a rating scale in a keypad orientation. It confused me and my reaction was to ignore it because it doesn’t make sense. How do I know what the scale represents when it’s not presented in as a hierarchy?

Based on the tiny gray words “Very likely” next to 10, I assume clicking that will provide the highest rating while “Not likely” next to the 0, the lowest rating.

But what do the three rows of other numbers mean, really?

This scale literally goes to 11

Most likert scales rate 1-5 or 1-7 with the odd number of choices allowing the respondent to pick a neutral option instead of forcing her to agree or disagree/like or dislike. This keypad design goes one further, to 11, with options from 0-10.

Zero is extraneous unless it’s clearly marked “I hate y’all, never coming back. All I will do is complain about you on social media.” Providing 10 levels of “maybe I’ll recommend you” was overwhelming and unnecessary to me. Really, if you condense this down to where “9-7”, “6-4” and “3-1” are single choices, you have a 1-5 scale.

I guess this scale is standard for Listen360 as the example on their homepage is also 0-10 though at least displayed horizontally. I was not able to find anything on their methodology for using 11 options.

Horizontally aligned likert scale with ratings 0-10
Horizontal likert 0-10

I’m helping you, make it easy

This company is requesting that I give them valuable response data. I expect that clicking a number would submit the survey response, done. Instead, it becomes a three-screen questionnaire requesting more and more. After selecting a rating, a web page opens asking for a long-form response.

You’re asked “What could we do to improve?” for 0-7 or “What do you like about our services?” for 8-10.

Rating screen asking what do you like about our services?
Long form answer box


Oh, a submit button! Am I done? No…


Screen reads time for a quick favor? with links to rate on social media
Rate us screen

Are you for real? Do you have “time for a quick favor?” Isn’t that what I did 5 minutes ago when I clicked a number in your email? This is like when companies sneakily check the “subscribe to our newsletter” box when you just want to buy something.

No, I don’t want to rate you… What, you parsed out my name?? I have to click “No Thanks?” Why am I thanking you?

I find this kind of feedback baiting disingenuous. It began by asking if I’d recommend them, not how my experience was, and ends with an overt “LIKE US” ploy.

My feedback is, don’t send me this crap. It decreases my opinion of your company and makes me much less likely to either return to your business or to recommend you to anyone.