Last week I had the exact same conversation four times. With four different WordPress developers. All women.

The topic: I want to publish code, discuss issues that matter, ask questions to core developers, blog, make some noise, contribute, but I’m to afraid to do that. It reminded me of myself.

What is the matter with us women? Why the self inflicted self pity and lack of confidence?

“I am not good enough, I don’t know enough, what if they think I’m stupid, my English really sucks.”

Do only female WordPress programmers think that way? Or are women and men with talent and knowledge all over the world hiding themselves, because they think they aren’t good enough? Sobbing under their desks, anxiously staring at the world, hiding from critisim and ridicule. What a waste of talent and possibilities!

So what are we afraid of, why sell we ourselves short?

Every contribution, blog post, piece of code you publish is valuable. Criticism is part of the job, learn from it, don’t hide, embrace it, it helps you getting better! Nobody makes fun of you when you want to contribute and do you best. You are most welcome!

Do you really think all the guys, that make so much noise, always write perfect code and never make mistakes? Hell no, just like you they work and learn, make mistakes, write bugs and try to improve themselves.

Exactly the same as you…

So girl: pull yourself together, put your teeth into it, jump in at the deep end. Study hard and publish what you found useful. Respect is not earned by sitting silently in a corner.

Show what you can do and be proud of yourself, and don’t be afraid to make a mistake. We are all human, boys and girls alike.

Imagine you are blind, how do you understand a website? You would use a screen reader. All the text in a website is read out loud for you, from top to bottom. To navigate a site you can call a link list and a headings list.

The headings list you can use to navigate inside the page. Jump to a heading of interest and read from there. With the link list you can choose where to go next. There are more ways to navigate a site, but links and headings are most commonly used by screen reader users.

How can you decide where to go, when a lot of the links in a page are called “Read more”. Read more about what?

So, if you are a web developer, how can you help your blind visitor to understand your website? First of all: use headings that make sense. And second: use link texts that tell where they are linking to. And here the screen reader text comes in: it hides text from screen, but not from a screen reader.

For example links with the text “Read more”, “Continue reading” or a plain “>” or a font awesome icon. Looks neat and small and is incomprehensible for your blind visitor. But writing the whole post title in the read more link is long and ugly.

Labels in forms

A form input field needs a label. It’s just good practice and it tells a screen reader user what to fill out. A placeholder is no label, screen readers don’t read them well. But a label takes up space and maybe you don’t want that in your theme. So hide it with screen-reader-text.
For example in the WordPress search form:

Hiding links

As a service to screen reader users and keyboard only users you can add skip links at the top of a page. That way a visitor can quickly jump to e.g. the content, without having to tab though the navigation.

The screen reader text in more detail

Clip versus absolute positioning

.screen-reader-text {
position: absolute !important;
left: -999em;
}

This technique is pretty solid and works in all browsers however there are two main issues with this technique – its relatively easy to break, and it can cause a page “jump” if applied to focusable elements (like skip links and read more links), which can be very confusing to sighted keyboard users. [Reference: Jeff Burnz and Jonathan Snook]

Different ways of doing it

Gary Jones collected a few different ways of hiding text with clip. And there are more variations. Pick the one that suits your theme or adjust it to your needs.

What about:

clip: rect(1px, 1px, 1px, 1px);

versus

clip: rect(0, 0, 0, 0);

I couldn’t find a specific reason to use 0 or 1px, they both seem valid.

Back and forward compatibility

Clip is deprecated in CSS3, but supported by most browsers, it’s replaced by clip-path. Internet Explorer below version 8 doesn’t want a comma as separator and up to version 11 it doesn’t support clip-path yet, so you end up with:

The other way around: hide from a screen reader

The other way around is also possible. If you have an element that’s not relevant for screen reader users, you can hide it by adding aria-hidden=”true“.
This is used for example in the WordPress Admin for hiding a separator in the main menu.

WordPress and the screen-reader-text

The name of the class is up to you, but “screen-reader-text” is the standard name for WordPress, and is used by WordPress core in the Admin and the front end and in the bundled themes like Twenty Fifteen. As from version 4.2 this class is WordPress generated CSS, so it’s important that you add it to your theme before updating to WordPress 4.2.