The Liip.ch accessibility certification: a quick look back

Liip entered 2017 with a big success: liip.ch [1], our main website, has been certified as WCAG 2.0 AA compliant by the Access for All foundation.

Where it all began

Historically, Liip has always put great care into web content accessibility. We consider it as an important feature of any web project, for all kind of users, regardless any disability.
Of course, most of the time, customers are simply not aware of the topic at all and this is where we try to first make them know about it and then actively participate.
Depending on the sensibility of the customer, this may take long. But in the past, we have already helped a few of them to achieve the certification.

Ironically, though, our own website was not certified so we decided to start the official certification process in 2014. Without starting from scratch but using our freshly revamped website as a base.

Who did it?

Let me get this out of the way: the accessibility process is never a one-man show.
In order to achieve anything, it’s paramount to involve all the “actors” of a web project: from the end users to the editors, and, of course, the people involved in the implementation.

In fact, as an informal team, designers, UXers, marketing experts and developer, all contributed to the final implementation.
I may say that everyone both brought and took away something from working on this project.

For instance, marketing people and UXers, but also developers, were surprised to discover that the accessibility improvements that they made, in the end, benefited also them, as regular website users.
Furthermore, they’ve been forced to see things from a different point-of-view, which is always a good thing.

Challenges on the way to accessibility

So, it took us three years and, as you may have guessed, it’s not been a pleasure cruise and I am saying this for two single reasons.

Customer projects first

Customers’ work has always had the priority, as it’s normal for an – albeit mid-sized – agency since this is what makes us pay our bills.
We worked on the accessibility certification whenever we had some “spare” time to dedicate, basically between projects.

No worries, we can fix it

We had completely relaunched our website a bit more than one year before, so we could not afford to completely rebuild it from scratch.
We decided to apply the necessary changes to achieve the certification to the existing website.
Unfortunately, it wasn’t the wisest decision.

We faced quite a few issues that simply would not have been existed in a website designed and implemented with the “accessibility in mind” from the first day. One example is the colors contrast which was not enough for most parts of the website. We wouldn’t have needed to fix this if the design had addressed the issue since the beginning.

What we actually achieved

Our main goal, what pushed us to get the official certification, was (and still is) to show that we can make visually appealing websites (or web applications) accessible, removing all kind of barriers to the benefit of all users.

It was pretty obvious, in fact, that the previous design had a few “flaws” that impacted “normal” users too.
For instance, the page header elements were barely readable for non-visually impaired users too.
So we fixed that issue for everybody.

Page header before the accessibility fixes

Page header before the accessibility fixes

Page header before the accessibility fixes

Page header after the accessibility fixes

Nevertheless, also thanks to the great collaboration with the “Access for all” foundation, we managed to fix everything and achieved the AA certification in January 2017.

What’s next?

The weak point of all the certification processes is to keep up with the high standard achieved.
This means that even greater care need to be taken in keeping the website accessible both from the design and content editing point of views.

The main “weak point” is content editing. Usually, the presentation stays pretty stable during the website life cycle but content can become “dirty” and hinder the accessibility.
One of the most effective ways to prevent this is to enforce the production of accessible content through carefully thought-out UIs and editing processes. I am thinking, for instance, about requiring the editor to enter a value for the “alt” attribute for images.

Over the years, the sensibility against the content accessibility topic has grown a lot within Liip so I am pretty confident that everybody will contribute to keeping the website as accessible as possible.

[1] the accessibility certification only applies to the main liip.ch website. Related websites like socialwall.liip.ch or blog.liip.ch are not concerned.

Tags: ,

Career day with refugees

Today I represented Liip at the “Career Day” of powercoders.org, a Swiss association to teach refugees to code and to ultimately place them in Swiss IT companies.
Around twenty companies got five minutes to pitch for interns. Afterwards each company got a table, to provide a space for a short interview session for a potential three months internship with the powercoders.org students. The discussions at the table were stimulating and I was particularly pleased about the fact, that the first three people at our table were women. When I had decided to participate at this event to represent Liip on short notice, a colleague of mine said the refugees would all be men anyway. I was well pleased to see her proven wrong.

At Liip we get a fair amount of internship requests, often by people at the beginning of their work career. It was refreshing to discuss with experienced people at this events, people that are entrepreneurs, worked in education, worked at several companies, that have the ambition to make a mark with meaningful employment…, this was a common denominator among everyone that came to talk to me. I was equally impressed by the organisation and the commitment of the organisers, in particular Christian Hirsig. The passion he put into hosting this event and the project is infectious.

We are looking forward to working with one or more of the people we met at this extraordinary event.

www.powercoders.org

The Data Stack – Download the most complete overview of the data centric landscape.

This blog post offers an overview and PDF download of the data stack, thus all tools that might be needed for data collection, processing, storage, analysis and finally integrated business intelligence solutions.

(Web)-Developers are used to stacks, most prominent among them probably the LAMP Stack or more current the MEAN stack. On the other hand, I have not heard too many data scientists talking about so much about data stacks – may it because we think, that in a lot of cases all you need is some python a CSV, pandas, and scikit-learn to do the job.

But when we sat down recently with our team, I realized that we indeed use a myriad of different tools, frameworks, and SaaS solutions. I thought it would be useful to organize them in a meaningful data stack. I have not only included the tools we are using, but I sat down and started researching. It turned out into an extensive list aka. the data stack PDF. This poster will:

  • provide an overview of solutions available in the 5 layers (Sources, Processing, Storage, Analysis, Visualization)
  • offer you a way to discover new tools and
  • offer orientation in a very densely populated area

So without further ado, here is my data stack overview (Click to open PDF). Feel free to share it with your friends too.

Liip Data stack version 1.0

Liip data stack version 1.0

Click here to get notified by email when I release version 2.0 of the data stack.

Let me lay out some of the questions that guided me in researching each area and throw in my 5 cents while researching each one of them:

Continue reading about The Data Stack – Download the most complete overview of the data centric landscape.

Tags: , , , , , ,

Hello, Rust! — An overview

This is my report of my talk at the TupperRust meetup hold in Lyon (France, February 2017) You find my slides available to download. 

The February 2nd 2017, I have presented a talk entitled Hello, Rust! — An overview about the Rust language. This language describes itself as safe, concurrent, and practical. The goal of this presentation was to give an overview of several features brought by the language, such as its strong safety guarantees, or speed and memory performances.

The slides are available online

First slide from the Hello, Rust! talk

This talk has been presented during the first TupperRust meetup event in Lyon (France). This is a serie of meetups focusing on Rust. The interaction was exceptional: The audience has been a great actor of this talk, and we even had a live-coding session on projects made by someones in the room. It was a great moment to talk about concrete problem, memory safety, performance etc.

It was also an opportunity to present a project that I have started here at Liip, called Tagua VM, which is an experimental PHP Virtual Machine that guarantees safety and quality by removing large classes of vulnerabilities thanks to the Rust language and the LLVM Compiler Infrastructure.

If you have any question, feel free to ask anything!

Tags: , , , ,

No nginx basic auth with either network or cookie set

For an internal tool, we’d like to allow access if you either coming from one of our office networks or you have a certain cookie set. If both are not satisfied, just show the usual basic auth dialog. And set that cookie, once you were allowed to access the page.

We wanted to do that in nginx and not the tool itself, as it looked like easier to do, especially since the tool didn’t have any authentication at all yet. Unfortunately it wasn’t that straight forward, but we found a working solution and wanted to share that.

Hope it helps anyone and saves them some time.

How to get involved in Drupal projects

Drupal is an open source project and really depends on its community to move forward. It is all about getting to know the CMS, spreading the knowledge and contribute to projects.
I will give you some ways to get involved, even if you are not a developer there is a task for you!

A group of Drupal mentors at DrupalCon 2016 in Dublin

Drupal Mentors – DrupalCon Dublin 2016 by Michael Cannon is licenced under CC BY-SA 2.0

Participating in user support

Sharing your knowledge with others is very important to the community: it is a nice thing to do and you might also learn some things by doing so. Whatever your skill level, you can give back to the community with online support. There are many places where you can give support starting with the Support Forums. You can also go to Drupal Answers which is more active than the forums or subscribe to the Support Mailing list. If you prefer real-time chat, you can also join #drupal-support channel on IRC or the Slack channels.

Helping out on documentation

Community members can write, review and improve different sorts of documentation for the project: community documentation on drupal.org, programming API reference, help pages inside the core software, documentation embedded in contributed modules and themes etc.
Contributing is a good way to learn more about Drupal and share your knowledge with others. Beginners are particularly encouraged to participate as they are more likely to know where documentation is lacking.
If you are interested, check out the new contributor tasks for anyone and writers.

Continue reading about How to get involved in Drupal projects

Tags: , ,

Drupal 8 Migrate Multilingual Content using Migrate API

As a follow-up to my previous blog post about the usage of Migrate API in Drupal 8, I would like to give an example, how to import multilingual content and translations in Drupal 8.

Prepare and enable translation for your content type

Before you can start, you need to install the “Language” and “Content Translation” Module. Then head over to “admin/config/regional/content-language” and enable Entity Translation for the node type or the taxonomy you want to be able to translate.

As a starting point for setting up the migrate module, I recommend you my blog post mentioned above. To import data from a CSV file, you also need to install the migrate_source_csv module.

Prerequisites for migrating multilingual entities

Before you start, please check the requirements. You need at least Drupal 8.2 to import multilingual content. We need the destination option “translations”, which was added in a patch in Drupal 8.2. See the corresponding drupal.org issue here.

Continue reading about Drupal 8 Migrate Multilingual Content using Migrate API

Tags: , ,

Fresh inputs from Confoo Vancouver 2016

I was invited to present at Confoo in Vancouver, Canada. I gave my talk “HTTP caching with Varnish” and a Symfony introduction. After having been invited to Confoo Montreal early this year, it was great to see how Confoo got an even broader range of technologies and languages covered. Many talks where on concepts first, rather than specific languages: HTTP, in-application caching, databases and so on. Other talks actively invited to learn new languages, like “Python for non-Python developers”.

Continue reading about Fresh inputs from Confoo Vancouver 2016

Web developer is a dream job? One week to discover

We welcomed Baptiste, 14 years, in our Lausanne Office. One week of “trial internship” to understand what it is to be a dev. What could I teach him in such a short time? Read this post to discover what I organised for him and how it went.

Dev step by step

Baptiste was visiting us to discover the different facets of our job, in view to better know what he wants to do later. This week was a professional orientation internship. Taking this issue very seriously, I have given much thoughts on how to prepare a broad, dense and accessible program.

Continue reading about Web developer is a dream job? One week to discover

Tags: , , , ,

Swift Alps Conference – experimentation and collaboration

The Swift Alps Conference has a special format focused on experimentation and collaboration. This is my report of the conference and the workshop Kilian and I held. The slides are available below.

Last month my colleague Kilian and I were pleased to attend the Swift Alps Conference, an experimental conference about Swift taking place in the Swiss Alps. This conference had a different format from what one can expect from a typical software development conference. In this case the format was more focused in experimenting and collaborating with other attendees with the goal of learning something new.

Experimenting with strangers

Continue reading about Swift Alps Conference – experimentation and collaboration

Tags: , , , , , ,