<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Facilitant la web &#187; usabilitat</title>
	<atom:link href="http://blog.facilitant.net/tag/usabilitat/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.facilitant.net</link>
	<description>Recursos, consells i reflexions sobre el món de la web</description>
	<lastBuildDate>Tue, 02 Mar 2010 11:10:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Validacions de formularis: a client o a servidor?</title>
		<link>http://blog.facilitant.net/2010/02/11/validacions-de-formularis-a-client-o-a-servidor/</link>
		<comments>http://blog.facilitant.net/2010/02/11/validacions-de-formularis-a-client-o-a-servidor/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 11:10:11 +0000</pubDate>
		<dc:creator>Ramon Vilar Gavaldà</dc:creator>
				<category><![CDATA[Bones pràctiques]]></category>
		<category><![CDATA[Desenvolupament]]></category>
		<category><![CDATA[accessibilitat]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[usabilitat]]></category>

		<guid isPermaLink="false">http://blog.facilitant.net/?p=211</guid>
		<description><![CDATA[Els que ens dediquem a sistemes client-servidor, més específicament, a sistemes basats en web,  sovint ens trobem amb la necessitat de construir formularis que executin accions a partir d&#8217;una entrada. És ben normal, que un client o un funcional proclami:


Vull que el número d&#8217;identificació sigui obligatori!
El correu electrònic ha d&#8217;estar en el format correcte!


O altres [...]]]></description>
			<content:encoded><![CDATA[<p>Els que ens dediquem a sistemes client-servidor, més específicament, a sistemes basats en web,  sovint ens trobem amb la necessitat de construir formularis que executin accions a partir d&#8217;una entrada. És ben normal, que un client o un funcional proclami:</p>
<blockquote>
<ul>
<li>Vull que el número d&#8217;identificació sigui obligatori!</li>
<li>El correu electrònic ha d&#8217;estar en el format correcte!</li>
</ul>
</blockquote>
<p>O altres típics requeriments que requereixin de fer una validació del formulari.</p>
<p>Davant d&#8217;aquest escenari, el primer que ens ve al cap és fer les validacions amb JavaScript a la capa client. Bé, no està malament. Fer les validacions a la capa de client, és ràpid en temps de computació, senzill (normalment) i proporciona una resposta ràpida a l&#8217;usuari, fet pel qual assegurem una bona experiència d&#8217;usuari mentre introduïm dades. Una de les primeres normes de la usabilitat a formularis és: com més aviat sàpiga l&#8217;usuari que s&#8217;ha equivocat, més aviat podrà reaccionar-hi (compte amb la interpretació d&#8217;aquesta frase <dfn title="De collita pròpia">made-by-me</dfn>!). Però mai hem d&#8217;acabar aquí!</p>
<p>Fer les validacions <strong>només</strong> a la capa client és una decisió completament errònia. On de debò s&#8217;han de fer aquestes comprovacions és a la capa servidor. Allà és on s&#8217;ha de mirar si cert camp existeix, si el format de tal camp és el correcte, de si la relació entre dos camps és correcta, etc. És a la capa servidor on tot aquest algorisme s&#8217;ha d&#8217;executar per prevenir qualsevol error que pugui tenir l&#8217;aplicació. És allà on s&#8217;executa la lògica de l&#8217;aplicació i on les validacions, com part d&#8217;aquesta lògica que són, s&#8217;han d&#8217;executar. Si només ho féssim a client, què passaria si no tinguéssim disponible el JavaScript? Quin seria el comportament de l&#8217;aplicació? Possiblement, acabéssim en un estat d&#8217;inconsistència no desitjat per ningú.</p>
<p>Sovint quan es planteja aquest argument (validacions dobles a capa client i servidor), molts <em>arquitectes </em>d&#8217;aplicacions (remarco la paraula perquè és el títol que es posen ells, no el que els hi posaria jo) posen el crit al cel i diuen la del porc argumentant que s&#8217;està fent una tasca dues vegades i que el rendiment de l&#8217;aplicació en general es veu ressentit. Si alguna vegada us trobeu davant d&#8217;això, només heu de dir:</p>
<blockquote><p>D&#8217;acord, llavors, les validacions que es facin només a la capa de servidor!</p></blockquote>
<p>Veureu com els hi canvia la cara <img src='http://blog.facilitant.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Cal tenir ben presents quines són les implicacions de deixar un processament de dades a una capa tan fràgil com pot ser un navegador, i la nostra tasca és argumentar i deixar ben clar el per què a client no és lloc per fer aquest tipus de processament.</p>
<p>Tingueu aquest consell sempre ben present perquè segur que al llarg de la vostra vida professional us caldrà utilitzar-lo més d&#8217;un cop.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.facilitant.net/2010/02/11/validacions-de-formularis-a-client-o-a-servidor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protegir pàgines amb l&#8217;event onbeforeunload</title>
		<link>http://blog.facilitant.net/2009/09/09/protegir-pagines-amb-levent-onbeforeunload/</link>
		<comments>http://blog.facilitant.net/2009/09/09/protegir-pagines-amb-levent-onbeforeunload/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 14:30:43 +0000</pubDate>
		<dc:creator>Ramon Vilar Gavaldà</dc:creator>
				<category><![CDATA[Desenvolupament]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[usabilitat]]></category>

		<guid isPermaLink="false">http://blog.facilitant.net/?p=173</guid>
		<description><![CDATA[No us ha passat mai que mentre esteu acabant d&#8217;omplir un formulari, sense adonar-vos, feu clic allà on no toca i perdeu tot el que heu introduït? Doncs bé, hi ha una senzilla manera per evitar al màxim aquests errors: l&#8217;event onbeforeunload.
Cap allà als mitjans dels noranta, Internet Explorer 4.0 introduí aquest event no estàndard, [...]]]></description>
			<content:encoded><![CDATA[<p>No us ha passat mai que mentre esteu acabant d&#8217;omplir un formulari, sense adonar-vos, feu clic allà on no toca i perdeu tot el que heu introduït? Doncs bé, hi ha una senzilla manera per evitar al màxim aquests errors: l&#8217;event <code class="javascript">onbeforeunload</code>.</p>
<p>Cap allà als mitjans dels noranta, Internet Explorer 4.0 introduí aquest event no estàndard, però a diferència d&#8217;altres ocasions, aquest cop feu una cosa útil i els navegadors amb motor Gecko ho acabaren introduint a la versió 1.7 de Mozilla (Firefox 1.0).</p>
<p>Aquest event, tal i com resa el seu nom, es dispara just <strong>abans</strong> de l&#8217;event <code class="javascript">onunload</code>, és a dir, abans que es descarregui el contingut actual de la pàgina, i per tant, ens permet executar algun tipus d&#8217;acció en aquest moment.</p>
<p>A diferència dels altres events, aquest funciona força diferent: per tal de mostrar un missatge a l&#8217;usuari abans de descarregar la pàgina, el que cal fer és retornar una cadena amb el missatge que es vulgui mostrar. Un exemple podria ser:</p>
<pre><code class="javascript">
window.onbeforeunload = function(e) {
  return "No heu enviat el formulari. Si tanqueu la pàgina perdreu tots els canvis fets fins ara.";
}
</code></pre>
<p>Així, en cas d&#8217;abandonar la pàgina, se&#8217;ns mostraria un quadre amb el missatge:</p>
<blockquote><p>Esteu segur que voleu sortir d’aquesta pàgina?</p>
<p><em>No heu enviat el formulari. Si tanqueu la pàgina perdreu tots els canvis fets fins ara.</em></p>
<p>Premeu D’acord per a continuar, o cancel·la per a romandre a la pàgina actual</p></blockquote>
<p>Les frases que hi ha just abans i després de les nostres les posa el navegador (en aquest cas Firefox) i no es poden eliminar, substituir ni evitar de cap tipus de les maneres.</p>
<p>Val a dir que en cas que el navegador no tingui implementat aquest event, aquests simplement l&#8217;ignoraran i no mostraran pas el missatge a l&#8217;usuari.</p>
<h3>Pàgines protegides</h3>
<p>Recapitulem. La raó principal d&#8217;aquest article és que fa poc a la feina em varen demanar que implementés una funcionalitat per a protegir pàgines: volien poder mostrar un missatge quan un usuari intentés abandonar la pàgina enmig d&#8217;un formulari dins d&#8217;un procés amb un cert flux o bé intentés abandonar una pàgina, la construcció de la qual fos molt costosa. Un exemple ideal per a treure l&#8217;event <code class="javascript">onbeforeunload</code> de la nostra cartera de recursos. Anem a construir-ho.</p>
<p>Per tal de poder marcar si una pàgina la tractem com a protegida o no, és a dir, si registrem l&#8217;event <code class="javascript">onbeforeunload</code> per mostrar un missatge a l&#8217;usuari en cas d&#8217;abandonar la pàgina, afegirem la classe <code>protected</code> a l&#8217;element <code class="html">/body</code> de la pàgina:</p>
<pre><code class="html">&lt;body class="protected"&gt;</code></pre>
<p>Així, si usem jQuery, podem afegir les següents línies de codi per a tenir-ho fet:</p>
<pre><code class="javascript">$('body.protected').each(function () {
  window.onbeforeunload = function(e){
    return "Si abandones, ho perdràs tot per sempre!";
  };
});
</code></pre>
<p>Però tenim un petit inconvenient: si fem clic en un enllaç o si enviem el formulari fent clic a un botó, se&#8217;ns mostrarà el missatge, cosa que volem evitar. Això es pot resoldre inhabilitant l&#8217;event en cas de fer clic a certs elements:</p>
<pre><code class="javascript">$('body.protected p.botons input, body.protected a.sense-onbeforeunload', context).click(function () {
  window.onbeforeunload = null;
});</code></pre>
<p>I així de fàcil obtenim el que busquem. Fàcil, oi? I segur que a més d&#8217;un li sembla útil, i fins i tot, més que necessari en alguna situació quotidiana.</p>
<h3>Recursos</h3>
<ul>
<li><a lang="en" xml:lang="en" hreflang="en" href="http://msdn.microsoft.com/en-us/library/ms536907%28VS.85%29.aspx">Onbeforeunload event. Internet Explorer Developer Center</a></li>
<li><a lang="en" xml:lang="en" hreflang="en" href="https://developer.mozilla.org/en/DOM/window.onbeforeunload">Window.onbeforeunload. Mozilla Developer Center</a></li>
<li><a lang="es" xml:lang="es" hreflang="es" href="http://blog.scriptia.net/articulos/2007/01/onbeforeunload.html">onbeforeunload: tiende una mano al usuario</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.facilitant.net/2009/09/09/protegir-pagines-amb-levent-onbeforeunload/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t make me think</title>
		<link>http://blog.facilitant.net/2009/03/12/dont-make-me-think/</link>
		<comments>http://blog.facilitant.net/2009/03/12/dont-make-me-think/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 22:17:48 +0000</pubDate>
		<dc:creator>Ramon Vilar Gavaldà</dc:creator>
				<category><![CDATA[llibres]]></category>
		<category><![CDATA[usabilitat]]></category>

		<guid isPermaLink="false">http://blog.facilitant.net/?p=101</guid>
		<description><![CDATA[Aquest és un llibre que, sota el meu punt de vista, tota persona que es dediqui a la maquetació web o directament al desenvolupament de sistemes basats en web, s&#8217;ha de llegir. Dic això, perquè crec que tots els que ens dediquem a aquest món cal que tinguem unes nocions bàsiques d&#8217;usabilitat, més que res, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_102" class="wp-caption alignleft" style="width: 243px"><a href="http://blog.facilitant.net/wp-content/uploads/2009/03/dont_make_me_think_2nd.png"><img class="size-medium wp-image-102" title="dont_make_me_think_2nd" src="http://blog.facilitant.net/wp-content/uploads/2009/03/dont_make_me_think_2nd-233x300.png" alt="Portada del llibre Don't make me think" width="233" height="300" /></a><p class="wp-caption-text">Portada del llibre Don't make me think</p></div>
<p>Aquest és un llibre que, sota el meu punt de vista, tota persona que es dediqui a la maquetació web o directament al desenvolupament de sistemes basats en web, s&#8217;ha de llegir. Dic això, perquè crec que tots els que ens dediquem a aquest món cal que tinguem unes nocions bàsiques d&#8217;usabilitat, més que res, per poder comprendre l&#8217;usuari i fer dels nostres treballs, feines de qualitat.</p>
<p>I no recomano aquest llibre en va. Ho faig perquè ja fa un temps, quan vaig veure que em calia endinsar-me una mica en el món de la usabilitat per comprendre més a l&#8217;usuari final, vaig demanar-li consell a una especialista en el tema, i ella fou qui me&#8217;l recomanà.</p>
<p>&#8220;No em facis pensar&#8221; és, a més a més del títol del llibre, el que pensa qualsevol usuari de qualsevol tipus de pàgina o aplicació web. Un usuari al entrar a un lloc web no vol haver de pensar en què ha de fer, com ho ha de fer i demés, sinó que senzillament vol i espera que l&#8217;aplicació o la pàgina el condueixi. Hem de tenir clar que si per usar la nostra pàgina cal pensar, llavors, estem condemnats al fracàs.</p>
<p>Amb aquest llibre, el seu autor, <a title="Informació de l'autor del llibre" lang="en" xml:lang="en" hreflang="en" href="http://www.sensible.com/about.html">Steve Krug</a>, vol transmetre les idees bàsiques de la usabilitat dins del món web. És un llibre de lectura més que fàcil, i que gràcies als seus exemples, que a primera vista poden semblar absurds, ens guiarà cap a l&#8217;aprenentatge de certes idees bàsiques per tal de fer dels nostres llocs, uns productes de qualitat tot esent de fàcil ús per als nostres usuaris.</p>
<p>Si donem un cop d&#8217;ull a l&#8217;índex del llibre, podem veure que aquest està dividit en quatre parts que duen com a títol:</p>
<dl>
<dt lang="en" xml:lang="en">Guiding principles</dt>
<dd>En aquesta primera part, formada per cinc capítols, l&#8217;autor ens mostrarà els principis bàsics de la usabilitat a la web. Es posa molta referència en temes com els hàbits de lectura al món web, les estructures típiques de certs components (cercador, <abbr title="etcètera">etc.</abbr>), entre d&#8217;altres temes.</dd>
<dt lang="en" xml:lang="en">Things you need to get right</dt>
<dd>Aquest segon apartat, format per dos capítols, engloba el disseny de la navegació del lloc, a més a més, del disseny de la portada. Ambdós temes, segons l&#8217;autor, són dels més importants.</dd>
<dt lang="en" xml:lang="en">Making sure you got them right</dt>
<dd>El tercer apartat, format també per dos capítols, ens fa centrar en com convèncer el nostre equip sobre la importància de la usabilitat. A part d&#8217;aquest tema, també trobem un capítol centrat en per què fer tests d&#8217;usuaris i quina repercussió poden tenir en el nostre projecte.</dd>
<dt lang="en" xml:lang="en">Larger concerns and outside influences</dt>
<dd>En aquest quart i darrer apartat, format per tres capítols, l&#8217;autor exposa altres temes vinculats amb l&#8217;usabilitat, com poden ser l&#8217;accessibilitat, entre d&#8217;altres. </dd>
</dl>
<p>Per acabar, només dir que és un llibre curt, de lectura ràpida i que personalment, em va ajudar molt en la meva carrera professional.</p>
<p>Personalment, crec que és una molt bona <a hreflang="en" href="http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758">compra</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.facilitant.net/2009/03/12/dont-make-me-think/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
