Skip to content →

Category: Accessibility

Accessibility Island, The Journey of Many Experienced As One

When I think of an island, tropical breezes, ocean surf and the warm sun-soaked sand between my toes is usually what comes to mind. Add in a blissful smile from memories of warm island beaches I’ve been fortunate to visit and for me the term island is generally a joyous one.

What then you ask do such happy ideas have to do with the term Accessibility Island? Yes, there is much that is joyous about both accessibility and islands but certainly not all.

I use the term accessibility island because of perhaps one of the downsides of island life. As marvelous as an island can be, you can be cut off from other parts of the world. Constraints, water in this case, can restrain you from all you want to reach.

So too with accessibility failings. You can be quickly cut off from achieving all you want, again through no fault of your own.

Several years ago I was talking with a good friend about the reality of working as an adult with a disability and how it differed from what we had expected before launching our careers. I don’t remember all the details of that conversation but now more than 30 years into my own career, the one thing I do recall being most surprised about hasn’t really changed. There are many, far too many in fact, times when you feel cut off or isolated through no choice of your own. I won’t lay claim to speaking for anyone other than myself here but suspect I’m not alone from various conversations I’ve had over the years.

At the start of my career, it was the meeting with paper handouts distributed to everyone. Oh and even me if I really wanted something I couldn’t read I could get the handouts also, to be read of course by that ubiquitous “someone can help you.” . Through all the technology changes, it is still far too common to end up in the functionally same situation. Sure you might get the PowerPoint deck, web site or app shared ahead of time but if the content itself isn’t consumable with a screen reader in my case it might as well be the same as those paper handouts.

This can be especially true in training or other learning activities. Accessibility Island is trying to learn the material in a class at the same time you are both educating the course creator about accessibility and figuring out how to use the technology in the course. Three for the price of one might be a great deal when shopping but is a disaster when trying to learn.

Anyone who has worked or lived around accessibility I’m sure can rattle off a long list of common failings. The point here isn’t to chronicle all that can and is wrong with the state of accessibility. Instead, it is to say that the truly unfortunate thing is that you are still left without a good alternative in far too many situations. Stay silent and you may not be able to contribute effectively because you are acting on limited information. Speak up and you are still far too often seen as complaining, not patient or counseled how you should have “handled that situation better” by someone after the fact. Please tell me how you should handle exclusion better other than feeling sad, frustrated, hurt and yes willing to educate still.

Meetings or training are not the point here. The examples are really illustrative of the entire workplace. What happens when a new software program, update or other technology is deployed? Has the organization ensured the experience is usable for everyone in the workplace?

Ask yourself how many workplaces are free from blocking accessibility issues? Now ask yourself what the new employee encountering these issues who is new to the organization, job or manager is supposed to do? Unless you have a policy in place ahead of time for how you are going to handle these sorts of situations, you are leaving the employee to potentially struggle and spend needless energy trying to figure out what they should do? You are also locking the employee out of opportunities and your organization out of all the employee has to contribute.

These are examples of finding yourself on what I’m calling accessibility island. You are alone, cut off and isolated.

Authenticity, the “lived experience” and such are the hot topics of the day in various diversity and accessibility circles. This is great but then do not shy away when people want to let you in on their true experiences. Don’t try and tell us all the things we could have done differently or how things will be fixed in a certain amount of time or to be patient. If you feel compelled to tell anyone anything, when you learn about people on Accessibility Island, tell those involved in sending people to such a destination what they can do differently.

Trust me, anyone who’s taken even one trip to Accessibility Island has likely tried dozens of creative problem solving techniques. Given the lack of alternatives I mentioned earlier I can also assure you that for anyone to actually show an outward sign that they’ve journeyed to Accessibility Island, things have to be quite problematic. The fact that is reality, is itself a problem too. It should be a safe space to acknowledge that you are experiencing such issues.

Educate about accessibility, ask if your organization has the right resources, not just policies, to ensure an accessible workplace. Do you have the right institutional policies and procedures in place from procurement onward to ensure what you are bringing into the workplace represents the values and qualities you want for your world? Are those policies backed with the resources and knowledge to ensure the policies are actually applied and working? Do employees have the necessary information and training to be successful and avoid sending their colleagues on unintentional trips to Accessibility Island?

I know for myself, I want to choose when I go to an island because I want to enjoy those tropical breezes, the sand and surf. I do not want to be isolated, trying to contribute and locked out. I’ve had more than enough visits to Accessibility Island.

2 Comments

Creating a Power BI report Using a Screen Reader

In my work at Microsoft, I work with a number of product teams on accessibility. One of the rewarding things about this is that I get to learn about a number of technologies and experiences. This is obviously accompanied by working to improve the accessibility and user experiences of these products.

I’ve been working with the Power BI team for close to a year and have learned a great deal about the technology. Creating a Power BI report using a screen reader is one of those things that having a few hints about how things work and such can save a lot of time learning what to do.

I put together this audio demo of the basics of creating a report, adding data to the report, understanding the visual layout of the report and how a few of the basic controls work. A transcript in text or Word is also available.

Microsoft has documentation on creating reports available. Accessibility information for creating reports and consuming them is also available. A help article on creating reports using assistive technology has also been created. You can also find various resources on the Power BI roadmap and other release plans.

If you have accessibility questions or concerns on Power BI, the Microsoft enterprise Disability Answer Desk is there to assist.

Leave a Comment

Some Training Videos From Me

In my work at Microsoft, I’ve created a few training resources recently. These have been shared in other arenas but I wanted to share them here as well. The list includes:

Leave a Comment

Variations on an Automatic Image Description

Reading through Twitter today, the following tweet showed up on the timeline of one of the people I follow as a retweet.

Doc🐕 – @DocAtCDI: A truck loaded with thousands of copies of Roget’s Thesaurus spilled its load leaving New York

Witnesses were stunned, startled, aghast, stupefied, confused, shocked, rattled, paralyzed, dazed, bewildered, surprised, dumbfounded, flabbergasted, confounded, astonished, and numbed.

I found the tweet amusing and was going to retweet but noticed it had a picture without any alt text. This lead me to be curious what was in the picture. From the tweet text, I’m assuming some form of vehicles on a road with a bunch of books scattered about is most likely.

I suspect most reading this know that iOS has the ability to automatically describe pictures. This functionality started in iOS 14. When using VoiceOver you can have a short machine-generated description of pictures such as the one attached to the tweet here.

Newer versions of iOS extended this functionality to include a feature called Explore Image. That allows you to use VoiceOver to step through individual objects recognized in the image. It can be accessed with a rotor option when focussed on the image. Here is where the experience gets a bit interesting.

My go to Twitter app on the iPhone is Twitterific. The accessibility of the app has been outstanding for years and the maker has been highly responsive if issues to creep in.

I’ve also been exploring another highly accessible Twitter app named Spring. So far I’ve had a great experience with this app as well.

As one would expect, both Twitterific and Spring offer the ability to view images included with tweets. When images are viewed in either app, the VoiceOver automatic image description and Explore Image functionality work. Differences in the same picture viewed in two different apps using the same automatic image description and exploration technology are plainly obvious though.

First off, the automatic description when viewing the image in Twitterific says:

an illustration of vehicles on a road X. VETERAN’S PLUMRNO. Rall

That same image viewed in Spring yields the following automatic description:

a group of cars driving on a highway ETERAN ‘S PLUMPING

Both descriptions mention that the picture deals with vehicles on a road in some fashion. and include what I’d suspect is the text of a sign on a van or truck in the picture from a plumbing company. Again the descriptions come from Apple, not the individual apps.

A picky point but cars do not drive, people drive them. I might not know what is in the photo for certain but I am quite confident it isn’t a bunch of Teslas with the self-driving mode engaged.

It is also interesting how the image description when using Spring is a bit more detailed. It uses the terms highway and cars, whereas the Twitterific version is more generic in nature. The detail about cars when using Spring is even more interesting when using the Explore Image feature to review the individual objects in the picture.

Again, the newest versions of iOS added a feature called Explore Image to VoiceOver. Focus an image, change the VoiceOver rotor to Actions and one of the choices will be Explore Image. This opens a pop-over experience with individual objects from the picture. You can use VoiceOver previous and next commands to move from object to object and have them highlighted visually in the picture.

Here are the objects from the picture in the tweet I mentioned when explored with Twitterrific:

  • Automobile near left edge
  • Automobile Centered
  • Automobile near right edge

Recall how the automatic description for Spring talked about cars driving on a highway? One can only wonder where the cars went and where the train came from when using the Explore Image feature. Here is what is reported when exploring the image in Spring.

  • Van near bottom-left edge
  • Van near right edge
  • Van near bottom-left edge
  • Train near top edge

Automatic image descriptions are another helpful tool for shaping the accessibility landscape. They’ll be even more impactful if the technology continues to advance to reduce the variability of something as simple as viewing an image in a different program seems to introduce and the accuracy and detail of what is described improves.

Leave a Comment

A Good Example Of What Not To Do and Using Color To Convey Information

I’m not a huge golf fan but with the Ryder Cup being played here in Wisconsin, I was a bit curious about the Whistling Straits course design. There is a good hole-by-hole guide that gives a description of the course.

Selecting a more details link for any hole takes you to a page with additional information. I know enough to know that golfers can start from different tee positions and assumed the numbers for each hole represented the distance for those locations. That’s largely where my understanding of the numbers stops so I was curious why there were five numbers for each hole.

A brother of mine tells me that for those familiar with golf, the colors for each number are fairly established as far as what they mean. Black represents the distance for professionals for example.

This to me is an excellent example of what not to do for web accessibility as far as conveying information with color alone. For those who do not see the colors, as obvious as they might be to golfers, the numbers by themselves are clearly not obvious. Similarly, for those less familiar with golf, I contend attaching a descriptive word to each number would be of benefit.

This is also an illustration of why manual review of web accessibility is so important. I ran multiple accessibility tools on one of these pages. Some contrast errors with other text on the page were flagged but not a single automated tool called attention to these numbers. Automated testing is just not at the point to handle that level of analysis.

This is going to be an example I add to my learning materials on web accessibility. For me it illustrates the concept of not using color alone quite well.

Leave a Comment

University of Wisconsin Hangs Out No Screen Readers Allowed Sign For Big Ten Opener

On Friday, the University of Wisconsin Badgers kicked off the COVID-19-influenced 2020 football campaign with a resounding 45-7 victory over the Illinois Fighting Illini. Like much in this year of change, Camp Randall was empty of the typical 80,000 fans.

To bring some of the gameday experience into the home, Wisconsin social media touted a new Badgers Live gameday experience.  Unfortunately, what Wisconsin Athletics clearly failed to do was ensure this experience was open to all fans. Instead, they hung out a sign to people who use keyboards and screen readers saying, “You are not welcome.”

Anyone familiar with web accessibility will recognize obvious WCAG failures on the opening signup screen.  Missing form labels and lack of keyboard access to needed controls just to name a couple.

If you manage to get past that, the signup experience has another basic failure where you are asked to pick an image to represent your user account.  The images are not reachable from the keyboard and are missing proper alt text.

There are likely many other failures beyond this.  I gave up after the inability to pick an image in the account creation process.

Web accessibility is not new and in fact is not optional for public institutions such as the University of Wisconsin. The university has detailed accessibility policies at https://www.wisc.edu/accessibility/.

At this point in my mind there is no reason beyond institutional indifference from at minimum the Athletics department to accessibility for these situations to keep happening.  This is not the first time I have experienced accessibility issues with web offerings from the athletics department.

It is far beyond time that Director of Athletics Barry Alvarez and Chancellor Becky Blank take accessibility of the online experiences for Wisconsin Athletics seriously. This new gameday experience may be exciting or it may be of absolutely no interest to me. But I, like any other fan, should have the opportunity to join and evaluate for myself.

As of Sunday, inquiries to Chancellor Blank on Twitter have gone unacknowledged. Email to a member of the athletic department indicated the issue would be investigated but with no date for an answer.

We are in unique times with all of us facing many challenges that were unexpected at the start of the year. But it is important that as we respond to those challenges, as Wisconsin Athletics has here, we keep our values and responsibilities in mind. Clearly someone at the university had the time to find this service. In fact, pregame radio interviews with members of the athletic marketing department repeatedly promoted how the team was looking to respond to COVID-19 and still create quality experiences for players and fans. This should have included accessibility and failing to do so is simply unacceptable.

Leave a Comment

A Couple Notes on VMWare For Virtual Machine Use

When I first wrote about using virtual machines with a screen reader, I mentioned that the machine management of VMWare’s Workstation was challenging. VMWare Workstation 16 seems to have corrected the majority of these issues.

The list of virtual machines is now something you can reach with the tab key. Up and down arrow will move to the different machines and a context menu on each machine available with Shift+F10 or the computer’s application shortcut key brings up all the options you’d expect for power, snapshots and more.

In addition, the menubar in the program now reads correctly with multiple screen readers. You can press Alt and hear that the top menu has gained focus and expected behavior with keyboard and screen reading works.

There is still at least one quirk I’ve encountered when using any menus in the program. When you are using the down arrow to move through a list of items on a menu, up arrow does not seem to move in reverse. For example, in the context menu for a virtual machine, there is a list of devices you can make available to the virtual machine. If you move down past one of these devices, you have to arrow down through all the menu choices to get back to what you skipped.

Overall in a couple days of using VMWare Workstation 16, I’ve had success. As I mentioned in my original post here, this is not a free option but with these changes it is one I’m going to be putting back into my virtual machine toolbox.

On the Mac side, VMWare has released Fusion 12. This is a must if you are going to run Apple’s newest update for the Mac OS.

I also believe this is new but there is now an option for a free personal license to use Fusion on the Mac. The license supports the typical non-commercial uses, such as education, personal use, and more. Take note though, signing up for the license requires completion of a captcha challenge that has no audio option. So far VMWare has not responded to a tweet asking about this.

If you do try Fusion on the Mac, I did post about how I resolved the Capslock conflict between VoiceOver and Windows screen readers. My work and personal interests require me to use both Windows and Mac daily so I find this to be a very viable option.

Leave a Comment

MLB Strikes Out on Accessibility

Although it took a structured negotiation and settlement, at one point MLB seemed like it was turning the corner on improving and sustaining accessibility. Sadly that time seems to have passed, much like a favorite star of yesterday.

Most recently, MLB added a simple game to their AT Bat app with a bracket challenge to pick winners in the upcoming Home Run Derby. The problem is for accessibility purposes, MLB used “Player Name” as the accessible names for each player. Obviously this means if you use a screen reader such as VoiceOver on the iPhone, you have no idea what names you’d be selecting. Capping the problem off, when I called MLB’s dedicated accessibility support phone number to report the issue, the support representative asked me, “What’s VoiceOver?” I spent more of the call teaching the person how to use VoiceOver versus anything else.

One can only wonder if MLB did any accessibility testing of this game. It took me less than two minutes to notice the issue. For an organization that seems to keep statistics on almost every conceivable aspect of a game, it doesn’t seem like it would be too difficult to ensure accessibility testing is a part of all processes.

After trying the game in the At Bat app, I did try the web site as a part of writing this blog post. That does work a bit better but still has issues. Further, why should users of screen readers be forced to jump through extra hoops and try multiple versions just to have a bit of recreation? MLB has demonstrated the ability to be a leader in accessibility previously. Here’s hoping the organization finds a way to return to those levels. In this case, it is a strikeout on accessibility, leaving this fan disappointed and more.

2 Comments

Inaccessibility Simply Gets Old

There are times when the continued lack of accessibility in basic tasks gets old. Today I wanted to see if my local Staples store carried a product so conducted a product search. Between all the instances of “icon”and “product tile large” on the resulting page, I have absolutely no idea if the product I was searching for is actually available.

I could write all about web accessibility standards or why it is important to make your web site accessible. I could also write a detailed analysis of what is wrong on the web site. Instead I’ll just say, it is disappointing that near the end of 2018, a product search on a major retail company’s web site still leads to every product reading”product tile large” with  multiple screen readers.

Staples does have an accessibility policy of sorts.

Leave a Comment

Improving the Usability of an Online Scrabble Game

A friend recently invited me to play a scrabble-like online game called Jamble on a service called ItsYourTurn.com (IYT). The service is far from a model of accessibility and I’m hopeful the company will respond to my contact about improving the basic accessibility of the site. Until that happens, I wanted to share some tips and a dictionary file I’ve created for the JAWS screen reader because it does make the game quite playable in my opinion.

The fundamental challenge for IYT and screen readers in particular is that the site makes extensive use of graphics that are all missing alternative text. JAWS, as do some other screen readers, copes with this situation by communicating some form of the address to the graphic file. In JAWS, if the graphic is part of a link, that address will be communicated by default. If it is just a graphic, a setting allows JAWS to still communicate that address. You will want to change the JAWS settings for graphics from show tagged to show all.

In my first game, the game board for Jamble read something like the following to me:

15 jb/jb-bl-2l jb/jb-bl jb/jb-bl jb/jb-bl-3w jb/jb-bl jb/jb-bl jb/jb-bl jb/jb-bl-2l

My seven letter tiles read as:

jb/jb-qu jb/jb-C jb/jb-D jb/jb-E jb/jb-L jb/jb-U jb/jb-V  

In fact, about the only positive was that the gameboard used an HTML table so screen reading table commands could be used to easily move around.

Turning the mishmash of letters here into something meaningful was quite easy though. A common feature of screen readers is to have a speech dictionary that allows a user to enter alternative spellings of words to improve on the pronunciation when speech synthesis doesn’t get things quite right.

Fixing all of the missing alt text and getting the various game squares and letter tiles to read something meaningful involved entering a series of speech dictionary definitions. For example, the text “jb/jb-bl-2l” was replaced with “Double Letter” since that square on the board was a double letter square. This means that JAWS now says “double letter” instead of the jb-gibberish.

One challenge I encountered initially when playing the game was finding the new word played each time by my opponent. The new letters played have a slightly different filename graphic for the first turn after they are played. A “-z” is appended to the filename. It was just a matter of updating speech dictionary rules to indicate not just the letter but also the fact that it was new. That helped with ensuring the letter was read correctly but I had no interest in hunting around a 15X15 grid to find new words each turn.

While the speech dictionary in JAWS does replace how words are communicated, it doesn’t alter the basic text. So, I was able to identify that the filename for the new letters always ends in -z. Thus, to find the new word just played by my opponent each time it is my turn, I can just do a search for -z and JAWS will position me on the first new letter on the board. I can then use table reading commands to explore around that letter to find the rest of the newly created word.

I’ve published a speech dictionary for this game in two forms. First is a JAWS settings package you can use to import the dictionary into JAWS. This is for the Chrome web browser. In JAWS, use the Import/Export menu option on the Utilities menu and choose import. In the dialog that appears, provide the file location where you save the settings file. For more information on importing settings files, please see the topic Importing and Exporting User Settings in the JAWS help.

For those comfortable with JAWS file locations and such, I’ve also published the chrome.jdf

file directly. You can download this file and copy it manually to the appropriate location on your computer. This would be %appdata%/Roaming/Freedom%20Scientific/JAWS/2019/Settings/enu with the most recent version of JAWS. You can also rename it for other web browsers or copy the existing text into your own existing dictionary file.

I am also experimenting with the ability in JAWS to use sounds in these dictionary files. That will allow game squares that are double and triple words or letters as an example to play unique sounds. Another dictionary update will be available when this sound option is completed.

Some Notes on Game Play and Other Randomness

To the extent my interest, time and ability to make updates is available, I intent this blog post to be a bit of a living document. What follows are brief notes about game play, screen reading techniques and other information that might be helpful if you opt to try this or other games from the IYT web site.

  1. The basic table for games in Jamble is a 16×16 table. The left-most column contains numbers for each row in the table. The numbers start at 15 in the upper left corner of the table. The bottom cell in this column is blank.
  2. The bottom row, or row 16, of the table contains the letters a through o to give letters to each column in the table.
  3. This leaves a 15 x 15 grid with the upper left corner reported as row 1 column 2 by a screen reader. Again, the left most column in the full grid, or column 1, is used for numbering.
  4. When you are playing a game of Jamble, the top part of the page contains links and information for navigating the IYT web site. It is likely fastest to hit t to get to the table for the game when you load a game. During game play, you and your opponent can post messages as a part of taking your turn. These will appear just before the table.
  5. Your letters appear as links just after the game table. The text “your letters” appears just before the letters themselves. Unfortunately, this is not a heading so you will likely need to use search function in a screen reader to get to this area.
  6. Immediately after your seven letter tiles are another seven links. These appear to be small graphic files that either serve no purpose or duplicate functionality of the letter tiles. The speech dictionary files define these links not to speak anything as a result. JAWS will still call these “graphic” because they are links.
  7. After your letter tiles, information about the game score, tiles remaining, and previous moves is shown. For previous moves, I have had the best success activating the link to show all moves. This then shows a table listing the starting coordinates for each word played and the point value awarded. The table has three columns that show the turn number, and then a column for both you and your opponent’s move.
  8. After the score and move information, there are several graphics showing the points awarded for different letters. Unfortunately, again these are missing alt text and so far I’ve not found a way to indicate the point values of letters. Just defining speech definitions in this case is not enough because you need to associate the color of the point graphic with the color of the tile played and the graphic files for the letters indicate nothing about color. As of now speech definitions for these graphics have not been entered so they will read something like “jb/jb-cir2”. Again, this is an image showing a color and telling players that letters of that color are worth two points in this example.
  9. The IYT Game Status page has three tables of interest. The first shows how many games you have indifferent categories. The second shows games where it is your turn. Activate the links containing opponent names to take your turn in each game. The final table shows games where it is your opponent’s turn.
  10. Taking a turn in Jamble involves a few steps:
    1. Locate the square where you want to place the first letter of a word you want to make and press enter on that square.
    2. In the edit box that results, enter the letters you will use to make your word. Do not include letters that are already on the board. If you are using a blank character, type the letter you want the blank to represent.
    3. Select across, the default, or down, to indicate the direction of your wort from a combo box just after the edit box where you entered your letters.
    4. Use the submit button to enter your letters.
    5. You will have a second submit button on the resulting page along with an edit box where you can enter a message for your opponent if you want to do so. Complete your turn by using the submit button from this page.
      1. If the resulting page reports it has 59 or so links, it means your word was not successful. There are brief instructions about what might be wrong. The page instructions tell you to use the back button in your browser to resubmit but I have found it faster to just return to the Game Status page and get back to the game from that page.
      2. If the resulting page has 86 or so links, your turn is done and your word was successfully played.
  11. If a blank tile is played, both the fact that it was originally a blank and the letter it represents are indicated on the board. I have not found a way to label this entirely so in these cases JAWS will announce a w and then the letter represented by the blank.
  12. The JAWS speech dictionary does not impact the braille representation of text and I have not found an equivalent method to adjust what’s communicated in this game for braille as of yet. As a result, in braille this game is still going to show all the untagged graphic file names.
  13. As mentioned earlier, the JAWS speech dictionary does not alter text when reading by character so if you read by character, you will still experience all the text such as “jb/jb-“.
  14. If you want to find a specific letter on the board, use the JAWS find text feature with ctrl+f and enter a dash followed immediately by the letter you are searching for. As a reminder, the game appends a -z to letters the first time they appear in new words so there is a chance when searching for a z on the board you will also hit this situation.
  15. JAWS has another feature known as Custom Labels that could possibly also be used to rename the untagged graphics. However, in trying that, I have found that the coordinates in a table seem to be saved along with the label, making this feature an impractical solution here.
  16. IYT has a number of games. Again, I hope the company will respond to my inquiry about improving accessibility but until they do, the techniques I’ve outlined here can be used for many of their other games.
  17. IYT is free and also offers subscriptions. Free accounts are limited to 15 game turns a day.
  18. As a reminder, these speech dictionaries are redefining the way the strings of text are pronounced by JAWS. If these same strings were to appear on another web site used in the same browser, these definitions would also be applied.

The Dictionary Entries

Following are the entries I’ve used in the dictionary files you can download.

;Double Letter

.-2l.Double Letter.*.*.*.0.0.

;Double Word

.-2w.Double Word.*.*.*.0.0.

;Triple Letter

.-3l.Triple Letter.*.*.*.0.0.

;Triple Word

.-3w.Triple Word.*.*.*.0.0.

;New letter played on board

.-z.New Letter.*.*.*.0.0.

;Squares on board with a tile played. This silences all but the letter indication.

.jb/jb-. .*.*.*.0.0.

;Empty squares on board, no letter has been played.

.jb/jb-bl.Blank.*.*.*.0.0.

;graphics in letter tile area that have no purpose

.jb/wtdot. .*.*.*.0.0.

;A blank letter in player letter tile area

.jb/jb-qu.Blank Tile.*.*.*.0.0.

Leave a Comment