Chris Worfolk's Blog


How to stop VoiceOver saying the word “group”

January 10th, 2019 | Programming

You’re trying to make your website accessible. Lovely stuff. But because screen reader technology is so bad, you need to add a bunch of inline span tags with the aria-label attribute on them so that you can add additional context, or, more usually, use some kind of hack to get around a screen reader bug.

This works well. However, it also splits the whole thing into separate groups. Consider the following example:

An annual subscription costs £20.00 per year.

Looks good. Except for VoiceOver on Mac and iOS, and probably other screen readers, too, will read out something like this:

Pound two zero zero zero

Oh no! It totally ignored the decimal point and now your user, if they are able to track the weird way it read out individual numbers, thinks that your product costs two thousand pounds. So, our old friend the Aria label is here to help.

An annual subscription costs <span aria-label=”twenty pounds”>£20.00</span> per year.

Hurray! It now sounds like normal language. But it’s still confusing. Now the screenreader reads them out as three separate blocks. “An annual subscription.” “Twenty pounds, group.” “Per year.” The user has to navigate through all three of them even though it is one sentence.

The fix

To fix it, we can use the role attribute. Sometimes.

If we set it to role="text" it will work in WebKit. For example:

<span role=”text”>An annual subscription costs <span aria-label=”twenty pounds”>£20.00</span> per year.</span>

Now it will read out the entire sentence as one string, but still using the Aria label.

Is role=”text” a thing?

No. That’s the drawback. it was proposed to be included in the Aria spec, but nobody could agree on whether it should be a thing or not. So, it was left out. Therefore, it is not implemented everywhere.

It is implemented in WebKit, so will fix the problem on Chrome, iOS, etc. But it won’t fix it in some other browsers. And, you might get pulled up by linting tools and validators because it is not part of any formal specification.

Where can I put it?

Anywhere you like given that it is a made up attribute.

But there are some things to be cautious of. It should only go on a block of text where you do not mind losing any of the context inside of it. If you have an element inside the paragraph, for example, that should be treated as a separate group, then leave it off.

It shouldn’t on headings because you don’t want to lose the context. Instead, put a span tag inside the heading with it on.

Also, you need to ensure you are using the aria-label attribute for anything inside. Normally, you can use an abbr tag with a title attribute and the screen reader will read out the title. However, if you wrap it in a role="text", this will only work if you use an aria-label instead/as well as the title attribute.

Lifeline TT 02 turbo trainer review

January 9th, 2019 | Reviews, Sport

In this video, I’ll review the Lifeline TT-02 fluid turbo trainer. It’s an indoor bike trainer sold by Wiggle. It’s an entry-level model that is perfect if you want to try out indoor cycling without spending a huge amount of money.

Setup is simple, and I’ll show you in the video. Pop the legs out, lock the bike in place and pop the riser block under the front wheel. You’ll need to replace your quick release skewer with the one supplied. If you have a thru-axle bike, see my review of the Kinetic Traxle.

With it being a fluid trainer, there are no controls to fiddle around with. The resistance gets exponentially harder as you pedal faster.

As it’s not a smart trainer, it’s not compatible with Zwift or TrainerRoad out-of-the-box: you’ll need a power meter or speed sensor on your bike to make it work.

You can listen to the noise levels on the video as I ride at 100, 200, 400 and 700 Watts.

RØDELink Filmmaker Kit unboxing

January 8th, 2019 | Reviews

The RØDELink Filmmaker kit is a wireless lavalier microphone specifically designed for filmmakers shooting on DSLR cameras. In this video, I’ll take it out of the box and show you what is included.

The kit is comprised of two parts: a receiver that plugs into your camera, complete with shoe adapter. The second half is the receiver that clips onto your belt. You plug the lavalier microphone into the unit.

The sound quality is okay out of the box but did require me to fiddle around with the levels somewhat to get it working. Setup took around five minutes as I just needed to hit the sync button on each unit a few times.

Kinetic Traxle review and installation

January 7th, 2019 | Reviews

The Kinetic Traxle is a replacement thru-axle that allows you to mount your thru-axle bike on a turbo trainer. In this video, I’ll review it and show you how it works.

It’s designed for the Kinetic indoor trainers but works on many other brands, too, including the Lifeline TT-02 (see my channel for my review of that).

It’s not as good as the quick release skewer: the Traxle requires you to screw it in with an allen key and a spanner, which you’re unlikely to be carrying on a bike. So, you’ll need to swap it out for your regular thru-axle when riding outside, which may be a major drawback for some people. It’s pretty quick to do, though, and I’ll show you that in the video.

It comes with three different thread sizes (the width between the screw threads), so you’ll need to get the correct one for your bike. For example, my Bianchi uses a 1.5mm thread. the axle adjusts quite well to specific bikes, though, thanks for the included spacers that you can add and remove.

Once you’re set up, you can look forward to hours of happy cycling indoors throughout the winter months using apps like Zwift and TrainerRoad.

Polar H10 review

January 6th, 2019 | Reviews

In this video, I review the Polar H10 heart rate monitor. Specifically, I’ll be comparing it to the Garmin HRM-Tri and the Garmin HRM-Swim to see how it stacks up.

The Polar H10 comes with two Bluetooth channels so you can connect it to two different devices at once (fitness trackers, watches, cycling head units, gym equipment, etc), but there is no support for ANT+.

It comes with the Polar strap which is super comfortable when cycling or running but doesn’t offer the same grim while swimming in the pool that other heart rate monitors do.

There are two smartphone apps that go with it, Polar Beat and Polar Flow. Why are there two? It’s not clear and quite frankly, a little confusing.

Ultimately, I like the H10 for the easy connection to my Mac when using Zwift, but it won’t be replacing my Garmin heart rate monitor while doing triathlon.

Yorkshire pudding freakshake

January 5th, 2019 | Food

Toby Carvery has outdone themselves. Their new range of desserts includes a freakshake that features a Yorkshire pudding with chocolate brownie in it.

New Year’s Eve 2018

January 3rd, 2019 | Friends

We saw out 2018 and welcomed in 2019 with our traditional house party. This year, Elina, Venla and I were joined by Chris & Cara, Chris, Kristo, Michelle and Mike.

And oh how we partied. I didn’t get to bed until 4am. So much so, that I had to miss the first Parkrun of New Year’s Day. Luckily, having gotten out of bed at 10am, I did manage to swing my Armley Parkrun to complete the second.

2018 in pictures

January 2nd, 2019 | Photos

Feeding giraffes during Elina’s 30th birthday celebration.

Running my first sub-two hour half marathon at the Canal Canter.

On the bike at Skipton triathlon, my first sprint distance race.

Powering up the hill at the Tour de Yorkshire.

Riding the Up North Yorkshire sportive with Bogdan.

The finish line of Wetherby triathlon, by first standard distance race.

Chris & Cara’s wedding.

Venla meets her cousins for the first time.

Sundowner middle distance triathlon.

Dissertation bound and ready to be handed in.

Yorkshire marathon.

Running the Abbey Dash with my family.

Venla growing up fast.

Family party for Katie’s 30th birthday.

2018 in review

January 1st, 2019 | Life

I started January with a poorly ankle, so, I did what any sensible person would do and bought new running shoes. We welcomed in the new year, enjoyed some blood pancakes, and I went through my first set of exams for my MSc. Worfolk Limited launched our first wearables app.

There were duathlons a plenty in February, with races in Middleton and Bramley Baths. I set a PB at Parkrun #143. Nick turned 40 and Auntie Doreen turned 90. The Eagles beat The Patrics in Superbowl LII and we watched the Winter Olympics from Korea.

I launched two online courses in March: one on Heroku and one on sport psychology. To celebrate Elina turning 30 we went to Flamingo Land, where it turned out we were the only people there. Mostly due to the Beast from the East. We dined at the Star Inn, too. The world said goodbye to Stephen Hawking. I raced the Canal Canter half marathon and York-Leeds-York sportive.

There was plenty of sport going on in April, too. I set a new PB at Parkrun #148 and attended the first ever Middleton Woods Parkrun. I raced the Bramley Baths triathlon (this time outside) and did my first sprint distance race at Skipton. Venla was firmly up-and-running by this point, too.

I spent a lot of May cycling, completing the Up North Yorkshire sportive and the Tour de Yorkshire. We even had chance to watch the pros finish. Chris Froome won a spectacular Giro d’Italia to become only the third man ever to hold all three grand tour titles simultaneously. I went sub-23 for the first time at Parkrun #153. completed my first my first open water triathlon, the Evolve sprint, and my first standard distance at Wetherby. Tesco caved in to my campaign to remove best before dates and I began recruiting for my dissertation.

It was a sport-heavy month in June, too. I rode 106 km in the Flat n Fast 100, and completed the Evolve Quarter and World Series Leeds triathlons. I ran Rothwell Parkrun for the first time. We finished our much-enjoyed Chinese month and our friends Chris & Cara tied the knot. I launched two new courses: Running For Beginners and Digital Marketing for Restaurants.

The big news in July was Leeds Anxiety Clinic opening its doors. We took Venla to Finland for the first time, to attend Henry & Jonna’s wedding. Back home, the Humanist summer socials kicked off and we had the annual Finnish picnic. Geraint Thomas won the Tour de France and football almost came home as England made to the semi-final of the World Cup, even winning a penalty shoot-out. I completed the Allerthorpe sprint triathlon.

Worfolk Anxiety launched its #ThisIsNormalLife campaign in August. There was Pride Parkrun and Allerthorpe Classic triathlon. I began marathon training in earnest. New research suggested alcohol may be bad for you after all and Facebook banned blogging. I launched another two courses: Triathlon For Beginners and Resilient Running.

If you’re sick of hearing about triathlon, you might want to skip September. I completed my first middle distance race and finished the year off with Nidderdale sprint. I set a new PB at Parkrun #169 and completed a full-distance marathon training run. And, after 21 months of waiting, my Parkrun 100 t-shirt finally arrived. Vicky Holland became triathlon world champion, Simon Yates won the Vuelta a España and Eliud Kipchoge set a new marathon world record in Berlin. Michelle moved back to Leeds. Most importantly of all, I finally turned in my dissertation.

There was no triathlon in October, apart from the Ironman world championship. There was lots of running, though. I ran Armley Parkrun for the first time and set a new half marathon training PB. I completed the Yorkshire Marathon in under four hours and, two weeks later, completed the Hubble Hubble ultramaraton. I had a birthday and so did Venla.

By November I was ready for a break. So, aside from completing the Abbey Dash with my family and trying out the new Potternewton Parkrun, I took it easy. There was plenty of work going on, anyway: Leeds Anxiety Clinic held its first public talk, I launched my first cycling app and a brand new course, Mental Health Ambassador training. The best news of the month, though, was learning that I had earned a distinction in my MSc.

Finally, in December, I launched one more new course: Digital Marketing for Therapists. There was plenty of family time as my sister turned 30 and we celebrated Christmas. This year’s ham was a family record of 8.67 kg. Temple Newsam held its 300th Parkrun and I rounded out the year by riding the Festive Fifty with Bogdan.

2018: A good year for fitness

December 31st, 2018 | Life, Sport

It’s been a great year for my personal fitness. I’ve always considered myself reasonably fit anyway, but this year I made an extra effort to take it to the next level. I had three goals at the start of the year:

  • Run a sub-2-hour half marathon
  • Complete a standard distance triathlon
  • Run a marathon

I could have knocked one of the goals off within the first week of January as I was registered for the Sir Titus Trot half marathon. Unfortunately, I picked up a nagging injury in November that didn’t disappear, so I had to do the sensible thing and sit it out.

No worries, as in March I ran a 1:52:24 at the Leeds Liverpool Canal Canter. I also accidentally ran a much faster 1:45:25 in training in October.

Next on the list was a triathlon. I knocked my first race off in April with Skipton, but that was only a sprint. My first standard distance was Wetherby, closely followed by World Series Leeds.

Finally, the marathon. I completed my first marathon-length run in September, and still can’t really work out whether that counts or not. But, in any case, I completed the Yorkshire Marathon three weeks later. Sub-4 hours you say? Why yes, yes I did.

So, all three goals knocked off. But wait, there’s more…

I originally told myself I would stick to those and look at longer events, like a middle distance triathlon and ultra-marathon in 2019. But, having the flexibly to train while I completed my MSc proved too alluring.

In September, I completed my first middle distance (half Ironman) triathlon when I raced Sundowner, finishing comfortably within seven hours, and well before the eight-hour cut-off.

And, two weeks after the Yorkshire Marathon, I completed the Hubble Bubble ultramarathon. Mostly because the idea of going through another marathon training programme did not seem too appealing when I could piggyback of the training I was already doing for the Yorkshire Marathon.

What will 2019 bring?

Probably some more middle distance triathlon. But I’m waiting for the club calendar to come out before I decide. I’ve already signed up for Leeds and Skipton. And my 10km PB is currently the run segment at Wetherby Triathlon so it would be nice to move the chains on that. But, at the moment, I’m enjoying some time off.