Web accessibility test using wave.webaim.org

The purpose of this post is to add different types of content to check if it validates when running it through Wave (web accessibility evaluation tool), available at http://wave.webaim.org or as a google extension.
Update: The online Wave tool isn’t able to reach my site, due to a bug related to http/https. Soon to be fixed according to Jared Smith at WebAIM.org, who also recommended the chrome extension as an alternative.

Want to learn more about accessibility? Check out this free course on Udacity, made in collaboration with google.

Alt text and linked images:

Via https://webaim.org/blog/alt-text-and-linked-images/

General rules:

  1. Decorative images should be given empty or null alt text. (they will then be skipped by screen readers)
  2. When the content presented in an image is conveyed elsewhere, such as in a caption, the image may also be given empty alt text.
  3. However, any time an image is the only content within a link, the image MUST be given alternative text that presents the function of that link.
  4. However, if a link following the image has text that is identical to the image alt text, you should consider adding aria-hidden=»true» to the image, to prevent repetitiveness. Or change one of the texts to differentiate.

Test 1
If the content of the image is presented in the caption (aka in text directly succeeding the image), the image may be given empty alt text:

Photo of an amazing lightning storm

Wave test-result: Feature. All good. And empty alt is ignored by screen readers.

Test 2: Linked image, with alt, no caption. Should validate.

Party & bullshit

Wave test-result: Feature. All good. Has alt, and no identical caption.

Test 3: Linked image, url has title, image has empty alt, no caption

Wave test-result: Error: An image without alternative text results in an empty link.

Test 4: Linked image, no title on link, has alt tekst, and has caption.

Party & bullshit
This image shows some people.

Wave test-result: Feature. All good.

Test 5
Image inserted with wp, with caption and clickable image

This is an alt text
This is an image caption

Wave test-result: Feature. All good.

Test 6
Image inserted with wp, without caption, without alt, without link on image

Test 7:
Image inserted with wp, where the alt and caption is identical (very common)

This is caption
This is caption

Wave test-result: Yellow alert: The alternative text for an image is the same as nearby or adjacent text.

Test 8
P3.no main frontpage plug, original:

Swifts kledelige stilskifte

Swifts kledelige stilskifte

Vellykket lek med form på hennes nye album.

Wave test-result: Yellow alerts: The alternative text for an image is the same as nearby or adjacent text. + Adjacent links go to the same URL.

Possible solution 1: Set aria-hidden=»true» on image.

Swifts kledelige stilskifte

Vellykket lek med form på hennes nye album.

Wave test-result: Nope, even with aria-hidden=»true» on the linked image the yellow alerts are still there. The alternative text for an image is the same as nearby or adjacent text.+ Adjacent links go to the same URL.

Possible solution 2: Empty alt-text on image. Should make a screenreader ignore the image and the link.

Swifts kledelige stilskifte

Vellykket lek med form på hennes nye album.

Wave test-result: Nope. Red error. An image without alternative text results in an empty link. AND An image without alternative text results in an empty link.

Possible solution 3:
Put all content within one ahref. No value in alt. (In html5 it is also allowed to wrap an ahref around a div)
Read https://www.w3.org/TR/WCAG20-TECHS/H2.html



Swifts kledelige stilskifte

Vellykket lek med form på hennes nye album.

Wave test-result: All good.

Testing solution on original plug. Ahref around everything, no alt-text on image role=»text» on h1 plus ingress (to allow for no visual cue that it is a link??)

Wave test-result: Jesus.
Red errors: An image without alternative text results in an empty link + A link contains no text.
Yellow alerts: Adjacent links go to the same URL x2.

Test 9
Nrk.no frontpage plug.

Wave test-result: Red error: A link contains no text. + Yellow alert: Adjacent links go to the same URL.

ReMorten v0.1 – Part 1

The ReMorten Project: A telepresence robot platform using nodejs running on the Raspberry Pi. Because why not.

Part 1: Snapping pictures using the Raspberry Pi, and exposing them outside your local network. A minimalist Peeping Tom system. It will also let me spy on my cat.

(Prerequsites: You’ve already got the Pi and the pi camera module up and running with Nodejs and npm installed. I use VNC viewer to connect to the Pi). You can purchase the camera module via eBay. This is the cheapest rpi2 I could find on eBay today

Make and enter a dir for your project and install node-raspistill:

npm install node-raspistill

make a file called interval.js and add this (taken straight from the node-raspistill example folder on Github):

1
2
3
4
5
6
7
8
9
10
11
12
const Raspistill = require('node-raspistill').Raspistill;
const raspistill = new Raspistill();
 
setInterval(function() {
    raspistill.takePhoto()
        .then((photo) => {
            console.log('took photo', photo);
        })
        .catch((error) => {
            console.error('something bad happened', error);
        });
}, 15000);

Run it by typing

node interval.js

Node-raspistill will create a subdirectory called photos, and start taking and adding pictures. Visit that dir to confirm that the pictures are showing up.

The easist way to serve the content of that directory as a webpage using http-server

sudo npm install -g http-server

Enter the photos directory and type:

http-server

You should see something like

Starting up http-server, serving ./
Available on:
http://127.0.0.1:8080
http://youriphere:8080

Now to the fun part.
To see the content of that folder from a machine outside your firewall/local network:

Go to ngrok.com and download the Linux Arm version of ngrok. Unpack the zip and type this in the terminal:

./ngrok http 8080

In the output from ngrok, find the Forwarding line, it looks something like this:

Forwarding: http://1234567.ngrok.io

where the 1234567 part will be unique every time you run ngrok (unless you make an account and pay them to get a permanent subdomain, which you should).

Visit that url on a remote machine outside your network to verify that it works. Refresh the page to see a list of newly added files.

Done.

Warning:
This is of course an insecure method that would leave your Pi and your network vulnerable, but it works well enough for testing purposes. Also: Leaving interval.js running willfill up your Pi until it dies, I suppose.

Next: Storing the images on Google Photo or another service with unlimited storage, and delete older images from the Pi to prevent it running full.

#30 White IPA

Jeg fortsetter min eksperimentering med hveteølgjæret WB-06,denne gangen med en utforskning av den nye yberhipsteraktige ølsorten White IPA, altså en kombinasjon av et balansert banany hveteøl og en humleleken IPA.

Jeg ønsket egentlig å gjøre humlesammensetningen 100% amerikansk, men endte opp med å bytte ut Centennial med Target, because penger og tilfeldigheter. Fikk store mengder Target og WB-06 gratis, så da ble det sånn. Forrige brygg (Brunweizen) var første test med WB-06, og er ikke helt sikker på om jeg er fan, jeg syns denne gjæren er litt røff i kantene egentlig.

Oppskrift snekret hos Brewers Friend:

Gleden ved å brygge hjemme er å teste ut nye ting, og denne gangen var det en rekke nye parametre som fikk luftet seg:
1. First wort hopping
2. Full volume biab,
3. Mesking ved bruk av Anova Sous vide (Ebay link)
4. En noe improvisert metode for gjæringstemperaturkontroll.

Jeg har brygget BIAB siden jeg startet, men jeg har bestandig skylt etter mesk, og gjerne klemt og tafset litt på maltet for å klemme ut så mye fermenterbart sukker som mulig. Denne gangen skulle jeg lage en minibatch på bare 4 liter ferdig vørter, så da hadde jeg plass i min vakre lille kjele til å gjøre en «ekte» BIAB, og da altså tilsette alt vannet fra begynnelsen av, og droppe skyllingen helt. Vanligvis har jeg en effektivitet på rundt 85%, og jeg havner som regel på en OG som er godt over det oppskriften estimerer, men denne gangen gikk jeg på en skikkelig smell :)

Brewers friend spyttet ut OG 1.069. Men faktisk målt OG ble bare 1046 etter kok. Jeg har aldri bommet så inni helvete mye på OG. Noe av forklaringen ligger nok i metoden jeg brukte for å meske. Jeg testet en Anova Sous Vide for å varme opp meskevannet. Jeg satte denne til 67 grader, siden jeg (feilaktig) regnet med at den minimale mengden malt ikke ville droppe temperaturen nevneverdig ved mash-in. Og ikke nok med det, men Anovaen var ikke ment å varme opp vørteren ETTER mash-in, kun mash-in vannet. Anovaen kunne sikkert gjort en fin jobb dersom jeg hadde latt den stå i vørteren, men jeg var redd for at vørtere skulle svi seg fast i Anovaens varmeelemt og skape usmak, evt ødelegge Anovaen. Jeg forsøkte å improvisere en løsning der jeg satte Anovaen i en plastpose med vann, og senket posen i et Norgesglass, og deretter i en metallbeholder for å få bedre varmeutveksling, men selv etter å ha skrudd Anovaen opp på godt over 70 grader måtte jeg bare konkludere med at apparatet ikke ville klare å få vørteren opp på 65 grader igjen. Big fail. Jeg burde selvfølgelig latt Anovaen varme opp meskevannet til 77-ish grader før mash-in, som normalt, og heller jobbet litt med å senke tempen med feks kaldt vann. C’est la vie.

En annen faktor som kanskje har påvirket skivebommen på mesketemp er muligens at at Anovaen gjør det umulig å bruke lokk på kjelen, pga av utformingen, så varmetapet ble mye større enn normalt. Min vanlige metode er å meske inn, røre, måle temp, og deretter pakke meskekaret inn i pledd, og la det stå urørt i minst 30 min, før jeg måler, rører og evt tilsetter en skvett varmtvann dersom jeg ser varmetap. Som regel faller tempen bare en grad på 30 min med denne metoden. Deretter gjør jeg en mashout, løfter ut meskeposen og skyller.

Men samma det. Dette blir altså ingen IPA. Til nød blir det en session IPA, dersom man legger godviljen til. FML.

White IPA
Method: BIAB
Style: American IPA
Boil Time: 60 min
Batch Size: 4 liters (fermentor volume)
Boil Size: 8.4 liters
Boil Gravity: 1.033 (recipe based estimate)
Efficiency: 75% (brew house)
Source: Olav Larsen

Original Gravity: 1.069 Final Gravity: 1.008 ABV (standard): 7.99% IBU (tinseth): 95.96 SRM (morey): 15.15
Fermentables
Amount Fermentable PPG °L Bill %
0.4 kg German – Wheat Malt 37 2 33.3%
0.7 kg American – Pale 2-Row 37 1.8 58.3%
0.1 kg American – Caramel / Crystal 120L 33 120 8.3%
1.2 kg Total

Hops
Amount Variety Type AA Use Time IBU
3.6 g Target Pellet 11.5 Boil 60 min 30.66
1.2 g Citra Pellet 11 Boil 60 min 9.78
8 g Target Pellet 11.5 Boil 15 min 33.81
1.2 g Citra Pellet 11 Boil 15 min 4.85
3.2 g Cascade Pellet 7 Boil 15 min 8.23
8 g Target Pellet 11.5 Boil 2 min 5.76
2.4 g Citra Pellet 11 Boil 2 min 1.65
2.8 g Cascade Pellet 7 Boil 2 min 1.23
8 g Target Pellet 11.5 Dry Hop 0 days
1 g Citra Pellet 11 Dry Hop 0 days
2.8 g Cascade Pellet 7 Dry Hop 0 days
8 g Target Pellet 11.5 Dry Hop 8 days

Hops Summary
Amount Variety Type AA
8.8 g Cascade Pellet 7
5.8 g Citra Pellet 11
35.6 g Target Pellet 11.5

Mash Guidelines
Amount Description Type Temp Time
3.6 L No-sparge Sparge 65 C 60 min

Yeast
Fermentis / Safale – Safbrew – Wheat Beer Yeast WB-06
Attenuation (avg):
86%
Flocculation:
Low
Optimum Temp:
12.2 – 25 °C

Starter:
No (Rehydration)

Fermentation Temp:
20 °C average

Pitch Rate:
13.5 g dry yeast
0.35 (M cells / ml / ° P)
24 B cells required

Notes
10/7-2016:
– 66 grader i 90 min.
– 1/2 appelsin, 1/2 sitron og 1/2 grapefrukt i 30 min (skall) i 30 min
– OG: 1.069
– FG: 1.015

Flytt 30 % av humla til first wort

Magnum (15%) i opprinnelig oppskriftet byttet ut med Target (11.5 uten å øke mengden). Target skal tilsettes i first wort, som kan gi 10% høyere ibu enn ved 60 min boil.
centennial 10% aa byttet ut med target

Babbel om humle:

Target

Flavour and Aroma
Target has excellent, intense aromas of sage, citrus and a spicy undertone in flavour, and is well regarded as an aroma hop for late hopping or dry hopping and used effectively as a bittering hop too.

Target Hops is widely used in the UK for both its bittering and aromatic qualities. The alpha acid content ranges from 8.0%-12.5% and imparts a clean bitterness. Target is commonly used for kettle additions in the brewing process for its smooth bite, and also for early aroma contributions. Target has created a following in breweries for its aroma that comes from the oil composition. Myrcene oil content is high in Target, while the other oils are in moderate range. Farnesene is only present in trace amounts.

Released in 1972 by Wye College in the UK, Target is a cousin of Challenger and has developed to become a widely grown and established English Hop variety. It has a high tolerance to wilt and resistance to strains of powdery mildew, but is susceptible to downy mildew.
Target Hops was bred at the Hop Research Institute at Wye College in England and was released in 1992, Target is a cross between the following: (Northern Brewer X Downy Mildew resistant male) X (Eastwell Golding X USDA 64103M)
The storage stability for Target is low, however, so look for fresh whole hops, or pellets.

Bittering Characteristics
Sharp and assertive.

Flavour Intensity
9/10

Analysis
Alpha acid: 8.5-13.5%
Beta acid: 4.0-5.7%
Co-Humulone: 37%
Total Oils: 1.2-1.8%
Myrcene : 45%
Humulene: 17%
Farnesene: Trace

Cascade
Via http://beerlegends.com/cascade-us-hops

Cascade Hops aroma and flavor is best summed up, as simply, American Pale Ale. Cascade hops contains moderate alpha acid content ranging from 4.5% to 7%. Its real strength in brewing is in the aroma. This mettlesome grower bears a verdant, botanic bouquet. It carries some spicyness to it as well. The aroma of Cascade also comes with citrus, sometimes compared to grapefruit. This no doubt comes from the higher levels of myrcene. Farnesene also registers fairly high in Cascade, which is used in the perfume and food industry.

Cascade is fairly resistance to disease and fungus, but its inability to store well, makes it lose some hops points. Its parents include Fuggle and Serebrianker, which is a Russian Variety.

Total Oil Composition 0.7-1.5 mls/100 grams
Myrcene Oil Composition 45%-60%
Humulene Oil Composition 8%-16%
Caryophyllene Oil Composition 3.5%-5.5%
Farnesene Oil Composition 4%-8%

Citra
Musky tropical fruit and strong citrus make Citra hops a great flavor and aroma addition to your homebrewed beer. Typical alpha: 10-12%. A very new American hop with parentage from Hallertau Mittelfruh, East Kent Goldings, and others. High alpha and strong tropical fruit aromas and flavors (think mango, papaya, and pineapple). Best known as a dry hop in Sierra Nevada Torpedo IPA.
Developed by Hop Breeding Company and released in 2007. Citra® Brand HBC 394 features fairly high alpha acids and total oil contents with a low percentage of co-humulone. It is tolerant to downy mildew and powdery mildew with good pickability of dense, medium sized cones. Comprised of Hallertau Mittelfrüh, US Tettnang, Brewer’s Gold and East Kent Golding.

Aroma: Specific aroma descriptors include grapefruit, melon, lime, gooseberry, passion fruit and lychee.

Alpha Acid 11 – 15%
Beta Acid 3 – 4.5%
Co-humulone 20 – 24%
Total Oil 1.5 – 3 mL/100g
B-Pinene 0.7 – 1% of total oil
Myrcene 60 – 70% of total oil
Linalool 0.6 – 0.9% of total oil
Caryophyllene 5 – 8% of total oil
Farnesene < 1.0% of total oil Humulene 7 - 12% of total oil Geraniol 0.3 - 0.5% of total oil --