Skip to content

Instantly share code, notes, and snippets.


Marcy Sutton marcysutton

View GitHub Profile
marcysutton /
Last active Sep 18, 2020
Enable Chrome Accessibility Experiment

NOTE: This is no longer an experiment! You can use the accessibility inspector in Chrome Devtools now, including a fantastic color contrast inspection tool. Read more:

Just like any good element inspector helps you debug styles, accessibility inspection in the browser can help you debug HTML and ARIA exposed for assistive technologies such as screen readers. There's a similar tool in Safari (and reportedly one in Edge) but I like the Chrome one best.

As an internal Chrome experiment, this tool differs from the Accessibility Developer Tools extension in that it has privileged Accessibility API access and reports more information as a result. You can still use the audit feature in the Chrome Accessibility Developer Tools, or you could use the aXe Chrome extension. :)

To enable the accessibility inspector in Chrome stable:

marcysutton / package.json
Last active Jun 6, 2016
Microsoft Edge Testing with aXe
View package.json
"name": "axe-webdriverjs-demo",
"version": "1.0.0",
"description": "How to set up aXe with WebdriverJS for automated testing.",
"scripts": {
"postinstall": "./node_modules/.bin/jasmine init",
"test": "./node_modules/.bin/jasmine spec/test.js"
"author": {
"name": "Marcy Sutton",
marcysutton / gist:13929e9933ad96090817b61d0f921fc8
Last active Mar 2, 2020
Accessibility and Performance Sitting in a Tree...
View gist:13929e9933ad96090817b61d0f921fc8

A snippet of an archived email conversation between accessibility professionals: George Zamfir, David Newton, Henri Helvetica, Monica Piotrowicz, Alice Boxhall and Tim Kadlec. I have noted who I thought was speaking, but it was hard to tell from the thread. Please comment if I can update the attribution!


  • SR = Screen reader
  • AT = Assistive technology
  • a11y = Accessibility
  • VO = Voiceover


marcysutton /
Last active May 3, 2016
Accessibility Support in HTML5 Audio

Here are a few things I found in testing HTML5 Audio in various browsers and screen readers:

  • The controls do work in Safari and Voiceover, they just require more key commands than "space". You have to press Control + Option + Space to toggle playback.
  • I had trouble toggling playback in Safari and Chrome with just the keyboard.
  • Mobile Safari and Voiceover worked fine.
  • Firefox and Edge both work from the keyboard alone
  • Firefox and JAWS required two taps of the space key.
  • Edge and JAWS did not work at all–probably because of immature accessibility support in the new browser.
  • Labeling the audio element with an aria-label attribute would help to give the track a title. It won't work in every browser due to accessible name calculation specs, but it's better than none.

The Pacific Northwest conference CascadiaJS grew into something new and amazing this year: a 3-day web conference now called Cascadia Fest. Following the JS Fest format, talks were grouped into server and browser JavaScript days, and a brand-new CSS day. 400 attendees and their families along with speakers and volunteer staff came to the beach for 34 talks and 6 free workshops at Semiahmoo Resort, across Birch Bay from Canada. The venue was right between Vancouver BC and Seattle, both previous locations, as well as Portland.

Cascadia Fest awarded 10 diversity scholarships this year, making a big impact in the community. As Northwest native, I love the message & perspectives at Cascadia Fest: common themes reflect the community’s values. Speakers talk about compelling side projects and talking through the learning process, while admitting vulnerability. They enlighten us about being polite citizens in open source and beyond, elevating our skills, and investing in our careers an

marcysutton / sample.scss
Created May 7, 2015
Angular Material CSS Best Practice
View sample.scss
// Brittle:
md-dialog {
&> md-dialog-content {
// better:
md-dialog {
.custom-dialog-content {
View gist:e6c24a8c0a4026a959fa

Open Source Contributions:

Angular Material

  • Accessibility of docs website: skip link, toggle menus, focus management, CSS for high contrast mode
  • Accessibility auditing and development for all components
  • Testing browers with assistive technologies on OSX, Windows, iOS and Android
  • 73 merged pull requests
  • 120 created issues, 128 closed, 66 assigned


marcysutton / string-wildcard-replacement.js
Created Mar 17, 2015
JavaScript string manipulation
View string-wildcard-replacement.js
var str = '1?101?011';
var repl = ['0', '1'];
var pattern = /\?/g;
var numMatches = str.match(pattern).length;
for(var j=0; j<numMatches; j++){
for(var i=0; i<repl.length; i++){
console.log(str.replace(pattern, repl[i]));
You can’t perform that action at this time.