Notes on Building Accessible Websites

Everyone should be able to go to a website and do what they want with a minimal amount of effort. What makes a website accessible? An accessible website should be perceivable, operable, understandable and robust. A website is perceivable when you provide text for any non-text content like images, videos, podcasts or other sound files and provide alternatives for time-based media. An operable website makes all functionality available via keyboard and provides users enough time. Your website is understandable when you create content that is readable and understandable. It becomes robust when your create it using techniques that maximizes future compatibility.
Notes On Building Accessible Websites

How do you achieve this?

You get started by adding accessibility to your website with HTML, CSS and files names.

  • Add alt tags to images. Not all images need the alt tag. If your image is for decoration only, you can skip the alt tag.
  • Use headings frequently. Headings help break up the text and make it easy to understand. Remember, to use one H1 tag per page
  • Use color contrast. The right color combinations can make text either easy or hard to read. Try Lea Verou’s color contrast tool.
  • Make your file names meaningful. Your camera gives your images names with long sets of letters and numbers. Rename them to describe the image. Meaningful names can help with SEO and finding an image if you need to updated it later.
  • Add a label to every form element.

How do you know how accessible your website is?

You can use the following tools to determine your websites accessibility and take steps to fix issues.

Wave

Wave is an accessibility evaluation tool. It can help you to make your content more accessible. It shows you errors in red, warnings in yellow and accessible content features in green.

Wave On Burlington Footwear

ChromeVox

A screen reader for the Chrome browser. Use ChromeVox to learn how a visually impaired person has to use your website.

Your Keyboard

Use your keyboard to navigate through your website without using your mouse. If you need to use your mouse, then you have some items that need fixing.

Do you use Chrome for Your Development?

Ire Aderinokun, UI Designer and Front End Developer, talks about the Chrome Accessibility tools that she uses to test for accessibility issues.

While you develop your next website, use these tools and tips to ensure that you build a site that is perceivable, operable, understandable and robust. By using a variety of tools, you can help to make the user experience better for all of your users.

Want to learn more about accessibility? The A11Y Project is working to make web accessibility easier for web developers to implement.

Takeaways from Milwaukee Code Camp 2016

What is Milwaukee Code Camp? A one day conference with a wide variety of presentations and talks on coding, technology and more. I attended the sessions on Design Patterns, Firebase, HoloLens and Building a Chat Bot. Here are my notes:

Takeaways Milwaukee Code Camp 2016

Design Patterns

David showed us how to make your code adaptable, separate concerns and apply an interface and different design patterns. He started with code that was written without the benefit of an interface. David showed why this design wasn’t as adaptable to changes as it needed to be. You couldn’t add a new back-end provider without rewriting the code.

David showed us four Design Patterns. They are:

  • Bridge Pattern: use an interface to separate dependency from code
  • Decorator Pattern: wrap one object inside of another
  • Chain of Responsibility: passes through a series of handler until it can process your request
  • Template Pattern: it handles repeated code (an algorithm)

David explained that you should use patterns when they make sense. Not all situations are appropriate for a design pattern. You can download the code and check out the slides for Design Patterns on github.

Firebase

Firebase is a noSQL database. It is a realtime database which has a cloud-based backend. With Firebase, you can build high-quality apps. It has APIs package into a single SDK for easy use. As a Google product, can use AD Works and Analytics to learn what your users need. It works across multiple platforms from iOS to JavaScript.

You may want to consider Firebase for your app if:

  • You’re building a new app or rebuilding an existing one.
  • Your application requires minimal integration with third party services or legacy systems.
  • You’re creating an app that doesn’t have complex user authentication needs or heavy data processing requirements.

To get started, sign up for a Firebase account. Create a project, then setup authentication because it is in active at first. Then, you can start creating your app. If you want, you can use it with a Facebook app. You can learn more about Firebase from Google.

HoloLens

HoloLens uses both augmented and mixed reality. They defined augmented as supplemental to reality. PokeMon Go is an example of augmented reality. Mixed is where you add objects to reality. Greg Levenhagen talked about how Microsoft is leading the way with augmented reality by providing HoloLens as a tool for creating revolutionary apps and games. We discussed how HoloLens can be used for engineering, training, manufacturing, sales and remote communications. Right now, C# developers can start building apps for HoloLens today.

You Can Build a Bot, too!

A chat bot that is. A chat bot is an app that simulates a human conversation. They can tell you the weather or find an article for you. “Chat bots are becoming the new apps.” Big tech companies like Google, Apple, Facebook and Slack have chat bots. You can order tacos from Taco Bell in Slack using a chat bot.

When you create a chat bot, you want it to have:

  • A simple and uncomplicated user interface.
  • A specific purpose and complete specific tasks.
  • A personality. Is it snarky or formal?
  • A reliable hosting service. You want your bot to be available all day.
  • A “catch all” response when it doesn’t know something. It may refer you to a website or a person who can answer the question.
  • Be well tested. A buggy chat bot will not be used.

Anthony Jesmok, a Full Stack Developer with Misix, explained that you can get started with your own chat bot. There are several bot frameworks to choose from. For his presentation, he used the Microsoft Bot Framework, Microsoft LUIS (a natural language recognition engine) and Node.js. With Microsoft LUIS, you create an app recognizes and handles the situations (functions) that you what the chat bot do. Anthony has made his code and slides available on github.

Summary

As with other conferences, it can be hard to choose between sessions to go to. I have new and interesting technologies and coding techniques to learn more about. Thanks to the sponsors: Skyline Technologies, SafeNet, Concurrency and University of Wisconsin – Milwaukee for making a great conference.

How is a WordPress Plugin Reviewed?

You created a WordPress plugin and submitted it to the Plugin Repository. What happens when you submit your plugin for review? How does WordPress review plugins?

How does WordPress Review Your Plugin

Mika Epstein at WordCamp Atlanta 2016 explains the process.

How do you prevent your plugin from being rejected?

  • Give your plugin a unique name. Don’t use “plugin” or “WordPress” in the name.
  • Avoid using Trademarks. Company or product names may be trademark. If you want to use Google Analytics as part of your name, you can’t because it is trademarked.
  • Don’t steal another developer’s plugin and pass it off as your own. If you are modifying or forking another plugin, credit the owner of the original and change the code so they can see that you made changes to it.
  • Make sure your code does things the way WordPress expects. They may reject your code if you don’t sanitize your data, hard code calls to WordPress directories or don’t document that your plugin uses calls to third party api’s or plugins.
  • Seven Day Rule. Communicating with your plugin reviewer is key. They may reject your plugin if you don’t respond to your reviewer after seven days.

Reviewing your plugin can be a long process. Every plugin is reviewed by a live person; it is not automated. Working closely with your plugin reviewer, helps you to fix problems and get through the process more quickly. Remember, they actually read the code and test it to make sure it works. You can make your chances of being accepted by doing the following: use a unique name, avoid using trademarks, give credit to others when you use their code and review your code to make sure it does things the way WordPress expects.

How Do I Manage Multiple WordPress Websites?

When you have a single WordPress website, managing it is easy. You log in update plugins, WordPress or your theme. Once you start making more WordPress websites whether for yourself or clients, you’ll need a more effective way of managing them.

Manage Multiple Sites

With WordPress, you have a number of solutions to choice from that help you manage multiple WordPress websites from one location. No more logging in and out and switching between websites. Here is a quick overview of three of the best WordPress Management solutions.

MainWP

A WordPress Management plugin that allows to manage multiple WordPress sites from one location. You can manage your day to day WordPress tasks from posts to updates. MainWP is a free plugin with many features.

You can:

  • Manage Plugins and Themes
  • Manage Unlimited WordPress sites
  • Manage Users
  • Host on Your Own Server
  • Manage content, upgrades and backups

What do you get with the paid version?

  • Article Uploader
  • Advance Uptime Monitor
  • Bulk Settings Manager

Infinite WP

A self-hosted, multiple WordPress management platform that simplifies your WordPress management tasks. You can backup and update multiple WordPress sites from one location without having to login to each site.

  • Written in PHP; not native to WordPress
  • Free
  • Self-hosted
  • Master Login
  • One Click Update
  • Back Up and Restore
  • Doesn’t matter what server you install it on

What do you get in the paid version?

  • Scheduled Backups
  • Manage Users
  • Publish Posts and Pages
  • Security Plugins like WordFence and iThemes Security
  • WP Maintenance
  • Cloud Backup
  • Staging

CMS Commander

A powerful dashboard that allow you to manage all of your WordPress websites in one solution. CMS Commander also provides tools for bulk posts articles and pages to your blogs simultaneously, create a new WordPress site with all the settings that you need to get started and more.

  • Free to try
  • One Dashboard to Control All WordPress Websites
  • Full Overview of Traffic and Statistics
  • Copy Entire WordPress Sites for a New Project
  • Complete Control to Manage Posts, Comments and Users
  • Easy to Update All WordPress Sites
  • Automatic Backups of All Your Sites

Summary

Managing multiple WordPress websites individually is both time-consuming and unproductive. By using a WordPress management tool, you can be more productive by streamlining your maintenance tasks and save time. Each tool has different features, benefits and pricing. Pick the one that fits your needs.

Why Learn to Code?

By now, you have heard that you should learn to code. Politicians, celebrities and others are advising you to learn how to code. With coding bootcamps like Free Code Camp, coding schools and organizations like Girl Develop It and online tutorials, you can easily learn code.

Programming
Learn to Code

Why should you learn to code? There are good reasons and bad reasons for doing it.

Bad Reasons for learning to code

  • You’ll make lots of money as a software programmer. Software programmers with years of experience and skills that are in high demand can get a good salary. It also depends on the industry. Non-profits and schools don’t pay as much as a software company would. If you are starting out as a programmer, you will be paid a beginner’s salary.
  • You’ll become a millionaire. For every great idea that succeeds, there are many that fail. Not everyone will want or even need your software idea. Being able to code won’t guarantee that your idea is what people will pay for.
  • Someone told you to It isn’t always a good idea to do something because someone told you to.

Good Reasons to learn to code

  • You enjoy solving with problems. When you write code, you need to be able to break a problem apart, decide what steps are require to solve and write code that solves the problem. If you don’t enjoy solving problems or figuring out puzzles, coding won’t be interesting or even fun.
  • You enjoy building new things. Building or creating things is a messy process. Sometimes it takes several versions or attempts to get the end result that you want. To write code, you have to enjoy this process and be persistent.
  • You enjoy learning new things. As a coder, you have to be a learner. Every day, there is some new technology, technique or requirement that you need to learn about. If you don’t like learning or trying out new things, than you won’t like coding.

What kind of knowledge do you want to gain from learning to code?

You can approach coding in two ways: Theory and Practical Knowledge. What do I mean by Theory? Theory means learning the basics of coding. It includes that history of programming, what does a coder (programmer) does and how do they start with idea and end up with a finished product. You’ll better understand how technology works and why they work they way they do.

Practical Knowledge includes theory. You learn how to use code to solve problems, program and build software and apps. It is a deep dive into the theory, techniques, tools and chosen languages. You learn how computers work, why you need to write code a certain way and how to take an idea from design to finished product.

How can you tell the difference? Michelle, Marktime Media, has a great example of theory vs practical knowledge. In her article about Should I Learn to Code, she talks about the difference between car ownership and car enthusiast. Car owners need to know how to drive a car and minimal maintenance. A car enthusiast knows more about cars than the average car owner. They are interested in learning everything they can about cars. Some enthusiasts can even design or build a car from scratch. Most car owners don’t want to do that. They learn just enough to drive and maintain their car.

What does this mean for you?

You have to decide what you want to do with coding. Are you going to learn theory or practical knowledge? Learn enough about coding to understand how it is done, what is involved in coding and using that knowledge to better understand the technology that you use on a daily basis. Or become a coding enthusiast. Learn how to code, solve problems and build great things.

If you are still considering learning to code and haven’t decided. Jeff Atwood of Coding Horror explains why you shouldn’t learn to code.