Full Frontal Conference 2015 - An Overview

A Twitter feed for the '#ffconf' hashtag was projected onto the screen between talks

Last Friday the Mothership dev team went to Full Frontal Conference at the Duke of York Cinema in Brighton. Sam and I went last year and found it very useful, especially as it was leading up to the open sourcing of Mothership, a topic which Hannah Wolfe of Ghost gave a talk on. This year there wasn't anything quite that relevant, but there was a lot to take home nonetheless. Here are a few of the talks that really stood out to me.

ES-6/ES-2015

The opening talk by Robin Mehner was covering new JavaScript features we can look forward to.

So first of all, apparently the naming convention for the ES JavaScript specification is changing from having a version number suffix to having the release year act as a suffix. This is probably going to confuse some people initially as this current version has two names (ES-6 and ES-2015), but I'm sure people will get over it.

Obviously, it's important to be careful when using new features of a language as support may initially be a bit spotty, but either way here is a list of the new features that stood out to me:

  • Optional parameters on functions - This is a big deal for me as it's one of the features I really miss when writing in JavaScript. It's bizarre to me that it has taken this long. Obviously, you can work around it by checking whether the variable is undefined, but this is a big improvement in my opinion.
  • Spread operator - The spread operator is a feature which was implemented into PHP in version 5.6, although for compatibility reasons I haven't have much of a chance to play with them in PHP yet. Essentially they allow greater flexibility with regards to the number of arguments passed to a function. There's a lot to them so I would suggest reading Mozilla's documentation for more information on usage.
  • Constants - They're constants!
  • let variable declarations - This was probably the first feature that made me pretty excited to hear about. This feature allows variables to be declared on a block level, i.e. within a for loop of if statement. The variable only exists within the scope of that block, and then reverts to its original state once the block is left.
  • Classes - Classes feel like a pretty inevitable addition to JavaScript, but it's cool to see them added nonetheless. For more information, I suggest reading Mozilla's documentation.
  • Unicode support - We can now use emojis in our code! Don't do that!

Mobile Accessibility

The next talk that really stood out to me by Marcy Sutton, on mobile accessibility.

For those who might not know exactly what is meant by 'mobile accessibility', in this instance it is referring to the ease at which people with disabilities can use your website on mobile devices. To me, this is a hugely important and oft overlooked part of web development.

Mobile accessibility is important because:

  • More people access the internet via mobile devices than desktop
  • More accessibility = more traffic, so it makes business sense. Marcy also pointed out that there may be legal ramifications for failing to make your sites and web apps accessible.
  • We as humans have a moral obligation to help those who are less able-bodied than the rest of us.

Marcy broke disabilities down into four major categories:

  • Vision
  • Hearing
  • Motor
  • Cognitive/learning

The majority of talk covered issues faced by those whom are visually or cognitively impaired.

First and foremost it is important to be aware of the barriers to entry when using your web app. Some examples given were:

  • Locked zooming
  • Hijacked scrolling
  • Visual clutter
  • Ambiguous icons

Personally I think this is good advice, not just when catering for people with disabilities, but for users in general. It is annoying when you can't zoom in and out of websites, and probably my least favourite trend of modern web design is when scrolling does something other than show you further down the site.

There were some easy wins, though. Semantic markup is very important, a button should be a button, and not a div. We should also use the aria-label HTML attribute to make it absolutely clear what the button does. It is also important to make sure that the touch targets are not too small, i.e. not just the text should be a link, but the whole box. This is another pet peeve of mine so it was good to hear it said. Finally, a major point raised was that things that are invisible on the screen should not be visible to screen readers either. This can be done by disabling the HTML element, and setting the tabindex attribute to -1.

Firefox and Chrome for Android both have tools for auditing accessibility. Annoyingly, screenreader statistics suggest that the most commonly used mobile platform by people with disabilities is iOS, which doesn't quite have the same auditing features.

Using JavaScript Frameworks

Another talk that stood out to me was by Paul Lewis, regarding hype surrounding JavaScript frameworks. His talk mainly consisted of performance statistics with different JavaScript frameworks, but his message was clear: JavaScript frameworks slow your application down. He made it clear that he wasn't saying that you shouldn't use a framework, but that you should prioritise the end user experience over developer convenience.

Obviously, there are considerations to take when deciding which tools to use. It might not make business sense to spend a week rather than a day building some functionality, by using vanilla JS instead of a framework. However, the impact on user experience should not be ignored. Loading an entire framework can cause frame rate drops, and may even cause pages to crash on mobile sites. Anyone who has tried to look at a newspaper site on an iPad has probably had to deal with this at some point.

Fortunately, Paul has also written an application for testing page performance called Big Rig, and I can't wait to try it.

Overview

In conclusion, it was a good conference. It would have been nice to talk about every single talk, but they were so varied and covered so much ground that I would have been writing this forever. I do wish the venue was different. The seats are really comfortable in the cinema, but as soon as there is an interval everyone is crammed like sardines in the lobby. Given how quickly the tickets sell out, I'm sure they could afford to hire a bigger venue.

Finally I want to mention one thing that I think was really commendable - the conference's emphasis on representation. There was a clean 50/50 split of male and female speakers, and 2 out of 8 of the speakers were non-white. This emphasis was made explicit by the final talk of the day - a powerful talk by Lena Reinhard about our responsibilities as developers and as humans to treat all people with respect.

Comments

Comment on this blog post