For many of us the days after the election were a deep, dark flurry of emotions (anger, fear, frustration, disappointment, sadness) that led to a feeling of helplessness. In the weeks since, many have turned those emotions to action. How can we, as web developers, use our skills to take positive action in the face of dangerous regressive attitudes and policies?
1. Build accessible interfaces
The image of Donald Trump mocking a disabled reporter is seared into my mind, so let’s use it as a motivator to develop more accessible applications. Building accessible interfaces is a step towards inclusion of everyone, regardless of ability. The amount of accessibility information out there can seem overwhelming, but here are a few steps you can take towards making your applications more accessible:
- Read a good introduction to accessibility
- Use an accessibility checklist (A11y Project and WebAim have good ones)
- Navigate through your app with a screenreader, like Chromevox, and make improvements to the experience
- Install the tota11y bookmarklet and use it to manually test your site
- Build automated accessibility testing into your build process with a tool such as axe-core or Pa11y
2. Care about users with older devices and slower connections
As professional web developers we are more likely to have modern hardware and access to fast web connections, but this isn’t true for everyone. In the United States, for example, 1 in 5 people own a smartphone, but either do not have access to high-speed internet at home or have limited access other than their cell phone. When we build our sites and applications with only modern devices and connections in mind, we shut out these people. How can we build applications that are modern and resilient for all users?
- Apply progressive enhancement as a design process, that allows sites and applications to fallback gracefully
- Speed matters! Measure and work to improve the performance of your sites. Smashing Magazine has a great checklist of performance strategies for the front-end (where 80–90% of response time is spent)
- Consider adding offline functionality, allowing users to access your content regardless of connectivity
3. Build inclusive forms
Forms allow users to interact directly with a site. They are often the thing that differentiates a web site from a web application and entering our name and gender are often key components.
In Dale Carnegie’s influential 1936 self-help book, How To Win Friends and Influence People, he states “a person’s name is, to that person, the sweetest and most important sound in any language.” Names are a core part of our personal identities. We often identify with them, turn at the sound of them said across the room, and intuitively appreciate when a person we have just met understands our names.
Unfortunately, it is possible to make assumptions that lead to the incorrect handling of names from minority groups. When working with names, we should be prepared for a variety of characters, spacing, and unique international formats.
For many, gender is not simply the binary sex of either male or female as determined at birth. When we limit a form to these two options we are excluding those who do not identify with these choices. When including a gender option in a form we should include space for a custom inputs as well as a “prefer not to say” option.
To improve your handling of names and gender in forms, I recommend reading these articles:
- Hello, My Name Is ______ by Nova Patch
- Hello, My Name Is by Aimee Gonzalez-Cameron
- Falsehoods Programmers Believe About Names by Patrick McKenzie
- How to Ask About Gender by Claire Gowler
- Think Outside the Box for Forms by CUSU LBGT+
4. Test with diverse users
When we only consider the opinions of those around us, we are potentially building things that shut out groups of people. When we test our applications with a diverse set of users we ensure this isn’t happening and build a better product. Everyone wins!
Julie M. Young’s article Inclusive Usability Testing Best Practices offers great guidance on recruiting and conducting user tests with a diverse audience.
5. Use HTTPS everywhere
HTTPS makes the web more private and secure, two things that only increase in importance with a Trump administration. Organizations such as EFF and the United States Government(!!!) have been pushing for site owners to enable HTTPS by default.
6. Ensure your user’s privacy
According to Pew Research, over half of all Americans are concerned about government surveillance and 91% of American adults feel that consumers have lost control of how their personal information is collected and used by companies. User browsing history can reveal religious preferences, political affiliations, and even predict illness before diagnosis. As developers we are on the front lines of protecting our user’s privacy. To ensure user privacy, we can:
- Respect user Do Not Track settings
- Notify users when setting cookies
- Seek to decentralize user data
- Follow privacy aware analytics practices
7. Secure user data
Data leaks are in the news nearly every day. For the user data that we collect, it is more important than ever to secure that information. Some practical steps we can take:
- Be aware of the OWASP Top 10
- Build on a strong foundation of security by using a well established and tested web framework
- Encrypt all data collected
- Provide multi-factor authentication options for users
- Harden your security headers
- Create a security disclosure policy
8. Be an ally for a diverse workforce
It’s no secret that the tech workforce has a diversity problem. At a time when our leaders are ignoring the wonderful diversity of our nation, let’s really commit to making this better. For those of us who come from a majority group, we can start by being good allies.
- Commit to working to support a diverse culture
- Be aware of your unconscious bias
- Listen and support your colleagues
- If you aren’t finding diverse candidates, change your hiring practices
- Read and utilize the (many!) great Project Include resources
9. Volunteer your time and skills
As developers we have two incredible assets: an in demand skill set and, oftentimes, a flexible work schedule. Take advantage of these and put them to good use. Find local progressive organizations and volunteer to build them a website or improve the one they have (HTTPS!). Or use your flexible schedule to donate your time.
10. Share your wealth
Thanks to the demand for development skills, many of us are fortunate to have a well-paying job. Use some of that money to support organizations that fight for equality and civil liberties.
The easiest way to donate is to set up a monthly reoccurring donation. Think of it this way: if you have small monthly subscriptions fees (Netflix, AWS, Digital Ocean, etc.) you can afford to support a progressive organization committed to our freedom. Match the fee of one of those services and set up a monthly donation. Here are a few of my favorite orgs:
- American Civil Liberties Union
- Border Angels
- NAACP Legal Defense Fund
- The Young Center for Immigrant Children’s Rights
- Electronic Frontier Foundation
Jezebel has compiled a more exhaustive list of Pro-Women, Pro-Immigrant, Pro-Earth, Anti-Bigotry Organizations That Need Your Support.
Most importantly, remember that we are all in this together. As President Obama said in his farewell address, we must be “willing to carry this hard work of democracy forward.” My hope is that we can all use our talents and skills to build a better Web and country. 🇺🇸