Notes on using HTML5 input type=search and the placeholder attribute

<input type=search> is one of the HTML5 additions to form input types. In theory you can just replace the old <input type=text> with the new type and browsers continue to work and the site is now more semantic. In practice working with type=search is not that simple.

First thing you probably want to do is to remove Webkit’s default, heavy styling. You do that by these CSS commands:

-webkit-appearance:textfield; -webkit-box-sizing:content-box;

I initially used the former, but after some odd width calculation issues I found out that latter is also needed to actually fully restore familiar type=text behavior.

Placeholder text is another wonderful addition to input elements (not just type=search). This replicates the common behavior of having the search field label within the field itself (until the user focuses the field). You add placeholder text by adding an attribute to the input element like this: placeholder=”search this site”.

To gracefully degrade, use Modernizr to detect a browsers with no support:

jQuery(function($) {
	if (!Modernizr.input.placeholder || navigator.userAgent.match(/opera/i)) {
		$('input[placeholder]').hint();
	}
});

Here I decided to replace native placeholder support on Opera, since there are no styling options for it, yet. The text is always in #7f7f7f, which was not an option, since the background was exactly that color.

To style placeholder text you need these rules:

input[type=search].blur{color:#ddd}
input[type=search]::-webkit-input-placeholder{color:#ddd}
input[type=search]:-moz-placeholder{color:#ddd}

You cannot combine those selectors, since the rule will stop working as expected. .blur is for browsers that do not support native placeholder behavior.

And here is the modified version of the plugin that adds placeholder behavior. To make it more HTML5 friendly, I basically just replaced the use of title attribute with placeholder attribute.

/**
* @author Remy Sharp
* @url http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/
* Modified to use placeholder attribute by Aki Björklund, https://akibjorklund.com/
*/
(function ($) {
	$.fn.hint = function (blurClass) {
		if (!blurClass) { 
			blurClass = 'blur';
		}

		return this.each(function () {
			// get jQuery version of 'this'
			var $input = $(this),

			// capture the rest of the variable to allow for reuse
			placeholder = $input.attr('placeholder'),
			$form = $(this.form),
			$win = $(window);

			function remove() {
				if ($input.val() === placeholder && $input.hasClass(blurClass)) {
					$input.val('').removeClass(blurClass);
				}
			}

			// only apply logic if the element has the attribute
			if (placeholder) { 
				// on blur, set value to placeholder attr if text is blank
				$input.blur(function () {
					if (this.value === '') {
						$input.val(placeholder).addClass(blurClass);
					}
				}).focus(remove).blur(); // now change all inputs to placeholder

				// clear the pre-defined text when form is submitted
				$form.submit(remove);
				$win.unload(remove); // handles Firefox's autocomplete
			}
		});
	};
})(jQuery);

W3C brändäsi HTML5:n, puristit itkivät

HTML5HTML5:stä oli muodostunut kansan suussa jotain muuta kuin mitä tiukkaan luettuna HTML5-speksi käsittää. Puristien mielipiteillä ei ole väliä. W3C teki oikein tarttuessaan tilaisuuteen vahvistaa tuota brändiä, joka joka tapauksessa oli jo olemassa. Kun haluaa korostaa eroa, ei ole kovin vaikeaa puhua HTML5-speksistä silloin kun sitä tarkoittaa ja jatkaa puhumista web-teknologioiden toisesta tulemisesta HTML5:na.

Tämän hullun applikaatiohypen aikana maailma tarvitsee yksinäisiä sankareita, jotka pelastavat meidät kaikki pahoilta megakorporaatioilta.

Vuonna 2013 kukaan ei enää käytä Windows Live Messengeriä

Windows Live Messengerin käyttäjämäärät ovat Suomessa pudonneet kolmanneksen vuodessa. Jos trendi jatkuu, viimeinen käyttäjä sammuttaa palvelinhuoneen sähköt joskus alkuvuodesta 2013. SoMe 2.0 tappaa SoMe 1.0:aa nopeasti mutta varmasti.

Windows Live Messengerin käyttäjämäärät ovat Suomessa pudonneet viikkotasolla yli 900 000 eri selaimesta reiluun 600 000 selaimeen.
Käppyrä on toteutettu SVG:llä ja data pohjaa TNS Metrixin viikkotason eri selaimien lukemiin, joihin ei voi enää pysyvästi linkittää heikon uuden toteutuksen takia.

Vielä muutama vuosi sitten tuntui mahdottomalta ajatukselta, että pärjäisi ilman Messegeriä tai että Jabber voisi mitenkään yleistyä. Niin on kuitenkin nyt tavallaan käynyt.

Facebook Chat lienee suurin syypää tuon käyrän laskuun. Riittävän monella lienee myös Gmail käytössä, että Google Talk -pikaviestimen käyttö syö Messengerin eväitä. Trendiä varmasti on voimistanut surkea Messengerin asiakasohjelma, joka häiritsee mainoksilla ja ties millä roskalla.

Sosiaalisen verkon arvo kasvaa sitä voimakkaammin mitä enemmän sillä on jäseniä. Valitettavasti myös käänteinen on totta. Messengerin täydellinen romahdus on erittäin todennäköinen.

Mielenkiintoista tässä trendissä on se, että tilalle ei ole tullut toista asennettavaa sovellusta (paitsi ehkä Skype jonkin verran), vaan ihmiset vaihtavat web-pohjaiseen ratkaisuun sen asennuskynnyksen olemattomuuden takia. Kun muistelee, miltä web-pohjaiset chatit näyttivät vielä muutama vuosi sitten (Messengeristä oli todella kömpelö popup- ja iframe-viritelmä), on niistä ajoista tultu todella pitkälle.

Itsekin hiljalleen suljen vähäisellä käytöllä olevan Messenger-tilini. Roikun Adiumin kautta Facebook Chatissa, Google Talkissa minut löytää osoitteella aki@h1.fi ja Skype-nimi on akibjork. Jos on asiaa, niin antaa kuulua!

Facebook voisi pelastaa journalismin?

Tulipa tässä mieleeni: Mitä jos Facebook lisäisi like-nappulaansa mikromaksamistoiminnon? Jotenkin näin:

Facebookin Suosittele-nappula Hesarin uutisen lopussa, mutta nappulan vieressä Tue-nappi ja teksti: 134 suosittelee ja 43 tukee tätä.

Ei luonnollisestikaan ole optimaalista käyttää kahta eri nappia, mutta tämä nyt on vasta idea. Like-nappulalla on kuitenkin sellainen etu, että se on jo melkein kaikilla verkkosivuilla. Minkään mikromaksamisen yleistyminen tyssää aina siihen, että ei ole tarpeeksi käyttäjiä, kun ei ole tarpeeksi mahdollisuuksia maksaa, kun ei ole tarpeeksi käyttäjiä…

Käyttäjien ei välttämättä edes tarvitsisi panna rahaa Facebookiin, jos Facebook panisi kunkin käyttäjän “kukkaroon” osan mainosklikkauksista saamistaaan rahoista. Silloin pelkkä liketys voisi riittää toimintona. Potin ei tarvitsisi olla välttämättä käyttäjäkohtainen. Mutta miksi Facebook tekisi niin? Sehän vain jakaisi itselleen muuten jääviä rahojaan pois.

Eli ehkä sitä rahaa pitäisi latoa tiskiin. Mikä sitten siihen ihmiset ajaisi? Mahdollisuus voittaa satunnaisesti jotain? Pro-käyttäjän leima ja badget joita voi ansaita tykkäämällä? Lailla määrätty internet-maksu? Onhan meillä tv-maksukin. Hankalaa, kun kyseessä on globaali ongelma.

Ei se nyt niin helppoa ollutkaan.

H1: logo, sivut ja ensimmäiset kuukaudet

Tein yritykselleni uudet sivut. Tai pikemminkin sivun:

Ruutukaappaus h1.fi:stä, jossa iso kuva Akista ja vähän tekstiä.

Logon suunnitteli ja kuvan otti Jaana Björklund.

Teknisesti sivu on luonnollisesti HTML5-muotoa, mutta toimii myös antiikkisessa IE:ssä. Sivun koodi on pyritty minimoimaan, gzip on käytössä ja kaikki muut hyvät käytännöt huomioitu. Logo on tehty manuaalisesti SVG:llä. Ainakin minulle yllätyksenä tuli, että jostain syystä selaimet lataavat tarpeettomasti object:lla upotetun SVG-logon varmistuksena olevan img:n viittaaman kuvan. Se ei ole tässä tapauksessa mikään ongelma, mutta mielenkiintoinen juttu sinänsä.

H1 on toistaiseksi yhtä kuin minä, joten sivutkin saavat heijastella sitä. Mitä sitä piilottelemaan, että yritys on pieni. Jos asiakas pelkää ostaa pieneltä toimijalta, ei se ainakaan teeskentelemällä ratkea.

Yrityksen tavoitteena ei varsinaisesti ole kasvaa, vaan ensisijaisesti tuottaa onnellisuutta – niin työntekijöilleen kuin asiakkailleen. Kasvua saa toki tapahtua. Niin käy luonnollisesti, jos löydän ympärilleni lisää samoja arvoja jakavia ihmisiä, sekä asiakkaita, jotka haluavat ostaa meiltä työtä. Tähän mennessä olen ainakin itseni työllistänyt enemmän kuin hyvin, joten jonkinlainen kasvu on todennäköistä.

Ensimmäiset reilu pari kuukautta H1 on toiminut kannattavasti ja tavoitteidensa mukaisesti. Omia, erillisiä toimitiloja sillä ei ole, koska työ tehdään joko asiakkaan tiloissa tai kotitoimistossa. Kotitoimisto on kylläkin toistaiseksi sohvan nurkka; kunnollinen työpiste on vasta suunnitelmissa. Kaikki aikanaan: menestyvä yritys keskittyy tuottavan työn tekemiseen eikä tuollaisiin epäolennaisuuksiin.

Ensimmäiset työtehtävät ovat olleet kaikkea maan ja taivaan välillä. Joitain töitä mainitsekin uusilla sivuilla. Mutta kerrottakoon, etten ainakaan kyllästymään ole päässyt.

Vähitellen on myös alkanut muodostua käsitys siitä, minkälaista työtä haluan yrityksen tekevän. Ideaali asiakas tuntuisi olevan keskisuuri yritys, jolle verkko on tärkeä tai erittäin tärkeä osa liiketoimintaa ja joka haluaa maksimoida verkkopalvelunsa tuoton. Muunkinlaiset asiakkaat toki kelpaavat, erityisesti konsultointityyppisiin asiakassuhteisiin.

Oikeastaan ei kannata rajata mitään vielä tässä vaiheessa. Kaikki on mahdollista.