PSA: If you are a web professional, work in a digital agency or build mobile apps, please read this article now: Taking the social model of disability online
"The social model of disability reframes discussion of disability as a problem of the world, rather than of the individual. The stairs at the train station are the problem, rather than using a wheelchair."
El Gibbs has reminded me of question time during Gian Wild's keynote at Drupal Downunder in 2012. Gian asserts that accessibility guidelines are a legal requirement for everyone, not just Government. There was an audible gasp from the audience.
It's true that our physical environment needs to include ramps, lifts, accessible toilets, reserved parking spaces, etc in order to accommodate those with mobility needs. Multi-lingual societies require multi-lingual signage. There are hearing loops - but for some reason, this "social model" of accessibility doesn't seem to have extended online.
Making the digital world accessible, and counteracting the systemic discriminatory impact of failing to do so is something we must take seriously. We must build this in during planning and design, we must make it easy for content editors to maintain WCAG compliance AFTER a site or app is delivered.
Building accessibility features in from the beginning also means it costs less to implement, and delivers a double win of making the whole team more mindful of these issues to begin with. It should be part of the acceptance criteria, it should be part of the definition of done.
I'd like to see us tackle these issues directly in Drupal core. If you're interested in keeping track of accessibility issues in Drupal, you might like to follow drupala11y on twitter, and check out issues on drupal.org that have been tagged with "accessibility".
Accessibility traps might not affect you now, but they will. This is probably affecting people you know right now. People who silently struggle with small font sizes, poor contrast, cognitive load, keyboard traps, video without captions.
My own eyesight and hearing is not what it was. My once able parents now require mobility aids. My cousin requires an electric wheelchair. A friend uses a braille reader, and yet I still forget. It's not front and centre for me, but it should be. Let's all take a moment to think about how we can focus on making our online and digital world more accessible for everyone. It really does benefit us all.
The number of critical issues holding up the release of Drupal 8 is now in the 50s. When will it be released? When it's ready. In the meantime there are some great opportunities around to start to get up to speed on what Drupal 8 is all about. Not least of which are 7 sessions at DrupalSouth in Melbourne next month.
Check them out:
First up, our keynote by Angela "webchick" Byron: Drupal 8: What you need to knowSince March 2011, the community has been hard at work on Drupal 8, which is currently undergoing active development. This revolutionary new release sports tons of improvements, and Angela Byron, Drupal core committer and long-time core developer, will lead you through the most important ones and how they'll impact your future site building endeavors. Get answers to your frequently asked questions, learn about the changes coming down the pipe for clients, site builders, designers, and developers. You'll also find out more about the core development process, some tips and tricks on how the community works and how to contribute. Best of all, you'll take away some action steps on how you too can help make Drupal 8 the most awesome release of Drupal yet!
Lee "larowlan" Rowlands: Contributing to Core without losing your mindContributing to Drupal core can be satisfying, educational, overwhelming, frustrating and many more emotions, all in the one issue. In this session I'll share some things I've learned from contributing to Drupal 7 and Drupal 8 core. Topics covered
- Negotiating issue queues
- Finding your niche
- Git and patch workflows
- Dealing with politics and personalities
- Not sweating details
- Development approaches
- Learning through reviews
- Building networks and friendships
- Automating your processes with phing
- Automated tests
Justin "beejeebus" Randell: Best practices for configuration management in Drupal 8Drupal 8 ships with a new Configuration Management System (CMI) that vastly improves on Drupal 7. A Drupal site's configuration can be expressed as a set of yaml files, and stored and managed just like source code. In this talk I'll explore the powerful new CMI features, and present best practice workflows for managing configuration across Drupal 8 projects. Trying to figure out how Drupal 8's new CMI features will work with your development team? Come to this presentation and we'll try to work it out.
Vladimir R and Josh Martin: Services in Drupal 8: using Drupal as data storage for mobile apps, web apps and websitesWeb services is one of the official Drupal 8 incentives. Known as "headless Drupal", web services allow us to use Drupal as a data storage for applications and websites using various frameworks and technologies. In this presentation we will cover
- Introduction to web services. We will cover origins and types of web services, crucial componets and basics to get us going. We will look into the difference between Drupal 7 and Drupal 8 service setup and why it was crucial to get services into the core.
- Examples of use. Modern web applications, mobile application and a lot of web sites are using web services for reusing exisitng application components or connecting existing applications together. For this presentation we've built mobile application, simple website and booking web app using Drupal 8 as well as various other libraries to demonstrate the practical use of web services.
- Drupal 8 services configuration. In this section we will cover how to get your hands dirty "under the hood" by configuring Drupal to work in examples from the previous section.
David Peterson: How Everything is Connected - Drupal 8 and Schema.orgThe world is complex and is full of connections and relationships amongst "real things". The web is complex and full of links between text, video and images. How do we bridge this divide between the real world and the online web? The Graph. The knowledge graph defines what is important to us and how it relates to the things we care about. When you publish a Drupal site is built with rich Content Types and fields, relationships link things together in a way that provides unique value to your end users. Then this wonderful data is hidden away as soon you you save the page and HTML is generated. Schema.org integration within Drupal 8 uncovers these hidden "things" and relationships and describes them as rich data within your HTML. So, that sounds great, right? But why would you want to do this? Schema.org was created by the largest search engines in the world Google, Bing, Yahoo and Yandex. They are consuming this data to provide end users with a much richer and more relevant search experience. Google has stated that 15% of all websites it has indexed use schema.org. That adds up to ... A LOT :) SEO is no longer a dark art. SEO is about encoding the rich relationships and entities from your website and sharing them to the wider world. Come to this session and hear about this wonderful new and interconnected world -- the Knowledge Graph.
Magda Kostrzewa: How to create a custom theme in Drupal 8
In this session we will look at some of the new features that are in Drupal 8 theming as well as demonstrate how to create and configure a Drupal 8 sub-theme from Classy, the new core theme in Drupal 8.
This session is for current Drupal themers who want a glimpse into how to get started creating your own sub-theme in Drupal 8 as well as those new to Drupal who want an introduction to Drupal 8 theming.
- How to add a custom theme to a plugin.
- How to add a display option to a plugin.
- How to use configuration options to customise the HTML output.
- We'll also take a look into some contributed views style plugin modules.
Accessibility matters. For everyone. For those of us who build the web, and for those who use it too. All of us.
Here's a couple of great resources that caught my attention in recent days.
Anne Gibson writes that "Web accessibility means that people can use the web." in an article on List Apart about Reframing Accessibility for the Web. It's really good. She advocates creating a test matrix for accessibility and putting the focus back on the technology available, rather than the abilities of the people who use it. This is strong, clear practical advice we should all consider.
Discovering these two resources pushed me to reframe some recent conversations about meeting these guidelines. We often get stuck debating compliance details, when really we should be thinking about setting our content free as flexibly and cleanly as possible. We're not just ticking boxes. At least, I hope we're not.
Drupal is one of the best content platforms for web accessibility, but it still has shortcomings. Unfortunately, many people who lack the deep understanding of what makes accessibility important still build sites that don't meet WCAG guidelines. I think it's up to all of us to spend a bit more time getting up to speed on the intricacies, and build it into our practice, and not just meet those guidelines, but exceed them!
[Image from from the W3C's Web Accessibility Initiative Guidelines and Techniques page - Read a description of this image ]
Sometimes, diving in to try and help work on something in an open source project can leave you feeling stupid, lost and confused. Generally, you'll find you are not alone. Sharing the problem, and the solution when you find it, can be helpful to build your own understanding, but also might help others too. So, just in case I'm not the only one feeling lost and confused about why the path / route / link issue in Drupal is so complex, I thought I'd share some of my confusion and a little ray of light that might help unravel this tangle of related terminology.
In the Drupalverse, we use IRC to connect with each other. So I popped into channel and asked:
Can someone describe how drupal uses these terms? route, path, url, uri, link, menu item - or point me to a reference?
Angela Byron generously responded with a rough outline of definitions, which I've fleshed out a bit below with some references.
"this URL goes to this PHP code, and can only be accessed by these kind of people."
As far as I can tell, this is a relatively new concept for Drupal with routing and controllers, replacing the hook-menu system we had previously. Here's a couple of references that might be helpful if you want to build a deeper understanding.
Uniform Resource Locator eg. "https://www.drupal.org/community" It's generally the address we use to find content on the web.
Uniform Resource Identifier is often confused with URL because it's so similar. See the URI wikipedia page for more information. I'm not sure if or how Drupal distinguishes between the use of URIs, URLs and URNs (Uniform Resource Names), but let's save that yak to shave on another day.
The Build a module team made a video that describes the difference between a URL and a URI
What the difference is between a URI and a URL (a Drupal how-to)
The path is like a pathway to find content eg. admin/content but because it can be an alias, it may not actually represent the location of a file on disk, which helps lead to some of the complexity under the hood in Drupal, and the confusion about when to use http://example.com/blog/yakshaving, /blog/yakshaving, or node/5
<a href="/foo">foo</a> - This one seems pretty straightforward - it's the HTML markup used to point to a URI or path.
A link in a menu - which could be pointing to a route, path or URI.
Hope that helps you, it certainly helps me to lay it all out like this. And, just in case you're wondering how I fell down this rabbit hole, this relates to a series of critical issues holding up the release of Drupal 8. If you can help, please get involved or buy a ticket in my chook raffle to help fund the Drupal 8 Accelerate initiative.