<?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>codehesive.com : interaction design, ux, data visualisation, gaming &#38; miscellany &#187; Accessibility</title>
	<atom:link href="http://www.codehesive.com/index.php/archive/category/web-general/accessibility/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codehesive.com</link>
	<description>design + coding, data visualisation and internationalisation</description>
	<lastBuildDate>Thu, 10 May 2012 10:34:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Gmail Zombie Feedback pop up: personal annoyance or nagware?</title>
		<link>http://www.codehesive.com/index.php/archive/gmail-zombie-feedback-popup-personal-annoyance-or-nagware/</link>
		<comments>http://www.codehesive.com/index.php/archive/gmail-zombie-feedback-popup-personal-annoyance-or-nagware/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 08:52:18 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[   Web Design + Development]]></category>
		<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Interface design]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/?p=685</guid>
		<description><![CDATA[Gmail launched a new look a few weeks ago. In my mind it was nothing particuarly revolutionary, just a general tightening of the design. Still, in essence, the same old Gmail. Since this launch, I&#8217;ve noticed that Google is keen to hear my feedback on the new design. Really keen. At first I just hit [...]]]></description>
			<content:encoded><![CDATA[<p>Gmail launched a new look a few weeks ago. In my mind it was nothing particuarly revolutionary, just a general tightening of the design. Still, in essence, the same old Gmail.</p>
<p>Since this launch, I&#8217;ve noticed that Google is keen to hear my feedback on the new design. </p>
<p>Really keen. </p>
<p>At first I just hit the close button. The second, third and possibly fourth time I did the same. Possibly the fifth time it appeared, I actually gave them feedback, telling them not to worry &#8212; the new design was fine, but please stop pestering me with the pop up.</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/11/nag.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/11/nag.png" alt="Gmail feedback" title="Gmail feedback" width="600" height="327" class="aligncenter size-full wp-image-686" /></a></p>
<p>Yet it kept coming back. It&#8217;s like a zombie: it won&#8217;t die unless you shoot it in the head. But the problem is, I don&#8217;t know where the head is.</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/11/resident_gmail1.jpg"><img src="http://www.codehesive.com/wp-content/uploads/2011/11/resident_gmail1.jpg" alt="Resident Gmail" title="Resident Gmail" width="600" height="450" class="aligncenter size-full wp-image-699" /></a><br />
<span id="more-685"></span><br />
Last Sunday, I knew I was going to be on my computer most the day doing work. First thing that greeted me when I checked my email? Of course, the pop up. So between now and then I&#8217;ve been taking screenshots every time it&#8217;s appeared. Between now and then, I&#8217;ve restarted Chrome and my computer several times, logged in and out of Google, submitted more feedback begging for them to stop bugging me and even took the damn tour of their new Gmail in a vain effort to get this black box out of my inbox. And it&#8217;s the same situation on my work computer: at least a few times a day, my little black box friend will rear its ugly little head.</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/11/zombie_popup.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/11/zombie_popup.png" alt="It just won&#039;t go away: Gmail feedback" title="It just won&#039;t go away: Gmail feedback" width="286" height="837" class="aligncenter size-full wp-image-687" /></a></p>
<p>I&#8217;ve feedback to Google twice about this, and heck I&#8217;ve even tried <a href="http://twitter.com/#!/joffley/status/134184890311774209">tweeting Gmail</a>. What can possibly stop this menace?</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/11/Contact-Us-Google-Help.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/11/Contact-Us-Google-Help.png" alt="Contact-Us - Google" title="Contact-Us - Google" width="600" height="200" class="aligncenter size-full wp-image-691" /></a></p>
<p>Now, this is where I&#8217;m interested to see whether this is just a personal overreaction to a tiny detail. I&#8217;m a bit obsessive about details. I have zero unread emails in my inbox, and it sends a cold shiver down my spine when I see people with even a few unread emails not attended too. Perhaps this pop up is annoying me because it&#8217;s interfering with my carefully groomed email environment?</p>
<p>Or maybe it&#8217;s more that when a user sees an &#8216;x&#8217; icon on anything, it&#8217;s an expectation that once you have clicked on that &#8216;x&#8217;, whatever dialogue is attached will disappear, forever, unless the user takes action that justifies its return.</p>
<p>And I haven&#8217;t done anything to justify its return. Why are Google doing this? Is the code to keep it hidden broken, or is a strategy to painfully wring as much feedback out as possible?</p>
<p>And is this annoying anyone else as much as me?</p>
<p><strong>Update, 17th November 2011:</strong> Well, seems I&#8217;m not the only one who&#8217;s been bugged by this:  <a href="http://www.google.co.uk/search?gcx=w&#038;sourceid=chrome&#038;ie=UTF-8&#038;q=google+new+look+feedback+popup">http://www.google.co.uk/search?gcx=w&#038;sourceid=chrome&#038;ie=UTF-8&#038;q=google+new+look+feedback+popup</a></p>
<p>But, that said, I haven&#8217;t seen the pop up for a few days. Hooray!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/gmail-zombie-feedback-popup-personal-annoyance-or-nagware/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flags and languages: Redux (Part I)</title>
		<link>http://www.codehesive.com/index.php/archive/flags-and-languages-redux-part-i/</link>
		<comments>http://www.codehesive.com/index.php/archive/flags-and-languages-redux-part-i/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 12:12:34 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[   Web Design + Development]]></category>
		<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Interface design]]></category>
		<category><![CDATA[Localisation]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/?p=394</guid>
		<description><![CDATA[If you search for &#8216;using flags to represent languages&#8217;, you&#8217;ll get a swathe of wisdom as to why this is a really bad idea. This really bothers me whenever I see it; which unfortunately is really quite often. I blogged about a language selection screen in the Steam client last year which again fell into [...]]]></description>
			<content:encoded><![CDATA[<p>If you search for <a href="http://www.google.com/search?q=using+flags+to+represent+languages&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:en-US:official&#038;client=firefox-a">&#8216;using flags to represent languages&#8217;</a>, you&#8217;ll get a swathe of wisdom as to why this is a really bad idea. This really bothers me whenever I see it; which unfortunately is really quite often. <a href="http://www.codehesive.com/index.php/archive/flags-and-languages-just-don%e2%80%99t-work/">I blogged about a language selection screen</a> in the <a href="http://store.steampowered.com">Steam client</a> last year which again fell into the trap of presenting users with a selection of flag icons in order to choose their language.</p>
<p>I went to the <a href="http://www.tate.org.uk">Tate</a> site today and a little UN-style gathering of flags caught my attention.</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/06/tate.jpg"><img src="http://www.codehesive.com/wp-content/uploads/2011/06/tate.jpg" alt="Tate homepage" title="Tate homepage" width="640" height="452" class="aligncenter size-full wp-image-383" /></a></p>
<p>What really bothers me about what the Tate have done here is that they&#8217;ve obviously put some thought into this design decision, but the logic behind the decision is broken.<br />
<span id="more-394"></span><br />
They&#8217;ve realised that using the Chinese flag for Chinese might be a bit politically sensitive (to say people form Taiwan or Singapore) and that there is no standard recognisable flag for Arabic &#8212; so while Arabic and Chinese are presented as the name of their languages, French, German, Spanish, Portuguese, Greek, Japanese and Italian users are given flags.</p>
<p>Swiss users in particular must love this scenario: they must choose the French, German or Italian flags (or stick with the English!).</p>
<p>Why not just list all the languages like you did with Chinese and Arabic?</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/06/tate-fixed.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/06/tate-fixed.png" alt="Tate homepage - broken v fixed" title="Tate homepage - broken v fixed" width="640" height="356" class="aligncenter size-full wp-image-384" /></a></p>
<p>I wonder if there&#8217;s some obsession with flags that overrides the logic behind such a decision. A few possible thoughts:</p>
<ol>
<li>we love flags because they&#8217;re graphical and a strong visual metaphor</li>
<li>they take up less space on the screen, therefore are seen as advantageous</li>
<li>they&#8217;re seen as &#8216;instantly recognisable&#8217; therefore being more usable</li>
<li>we don&#8217;t want to &#8216;confuse&#8217; other users by showing scripts/languages they won&#8217;t understand</li>
</ol>
<p>Any other thoughts as to what is behind this enduring phenomena?</p>
<p>The reasons that make flags such powerful and strong symbols are exactly why they&#8217;re so bad for representing languages: you are coercing users into identifying with another country in order to proceed to content in their native language.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/flags-and-languages-redux-part-i/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>TED Translations: free to the world</title>
		<link>http://www.codehesive.com/index.php/archive/ted-translations-free-to-the-world/</link>
		<comments>http://www.codehesive.com/index.php/archive/ted-translations-free-to-the-world/#comments</comments>
		<pubDate>Wed, 18 May 2011 16:14:45 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[   Web Design + Development]]></category>
		<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Interface design]]></category>
		<category><![CDATA[Localisation]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/?p=286</guid>
		<description><![CDATA[TED Talks are wonderful. Yesterday I watched this fascinating video by Eli Pariser, entitled Beware online &#8220;filter bubbles&#8221;: While watching the video (on the TED website) I noticed the subtitle options. TED has a fantastic translation scheme where users can transcribe translations for videos &#8212; a staggering 18,265 translations so far. But user experience-wise, this [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ted.com">TED Talks</a> are wonderful. Yesterday I watched this fascinating video by Eli Pariser, entitled <a href="http://www.ted.com/talks/eli_pariser_beware_online_filter_bubbles.html">Beware online &#8220;filter bubbles&#8221;</a>:</p>
<p><!--copy and paste--><object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talk/stream/2011/Blank/EliPariser_2011-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/EliPariser-2011.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=1091&#038;lang=eng&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=eli_pariser_beware_online_filter_bubbles;year=2011;theme=new_on_ted_com;theme=bold_predictions_stern_warnings;theme=what_s_next_in_tech;theme=a_taste_of_ted2011;event=TED2011;tag=Culture;tag=Global+Issues;tag=Technology;tag=journalism;tag=politics;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2011/Blank/EliPariser_2011-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/EliPariser-2011.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=1091&#038;lang=eng&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=eli_pariser_beware_online_filter_bubbles;year=2011;theme=new_on_ted_com;theme=bold_predictions_stern_warnings;theme=what_s_next_in_tech;theme=a_taste_of_ted2011;event=TED2011;tag=Culture;tag=Global+Issues;tag=Technology;tag=journalism;tag=politics;"></embed></object></p>
<p>While watching the video (on the <a href="http://www.ted.com/talks/eli_pariser_beware_online_filter_bubbles.html">TED website</a>) I noticed the subtitle options. TED has a fantastic translation scheme where users can transcribe translations for videos &#8212; a staggering 18,265 translations so far. But user experience-wise, this scheme has some critical issues.</p>
<p><span id="more-286"></span></p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/05/ted31.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/05/ted31.png" alt="TED Video player" title="ted3" width="450" height="416" class="aligncenter size-full wp-image-296" /></a></p>
<p>The default labeling for the subtitle feature is &#8216;Subtitles Available in: <em>X</em> languages [Off]&#8216;. Your main call to action to help people who perhaps don&#8217;t speak English is&#8230; well, in English. There&#8217;s not even any sort of icon to suggest non-English content is available: unless you speak enough English to understand &#8216;subtitle&#8217; or &#8216;languages&#8217;, then your really reliant on pure luck to spot this. And even then, there&#8217;s another trap: you must know the English name for your language. This same issue repeats itself on the actual translation page &#8212; users are presented with a list of language names &#8216;in your language&#8217; &#8212; but the language names are all in English.</p>
<p>It&#8217;s quite probable that most users will be able to find their own language in a list of English names. But it&#8217;s not fun, and by no means a good user experience &#8212; consider finding a link entitled &#8216;Inglés&#8217; on a website in Spanish.</p>
<p>A similar problem is present on the TED homepage. To access the huge translation program, you need to select the link &#8216;Translations&#8217;. Again, you need to know the English word. </p>
<p>Interestingly, if you search for TED on <a href="http://www.google.it/#hl=it&#038;xhr=t&#038;q=ted&#038;cp=3&#038;pf=p&#038;sclient=psy&#038;site=&#038;source=hp&#038;aq=0&#038;aqi=&#038;aql=&#038;oq=ted&#038;pbx=1&#038;fp=1&#038;biw=1356&#038;bih=780&#038;bav=on.2,or.r_gc.r_pw.&#038;cad=b">Google in another language</a>, it&#8217;s pretty good at sending you to the relevant translation pages. And if you have an in-browser translation feature (such as Chrome), this also makes it much easier to find these translations in your language (except even if you do translate the whole page, the subtitle options in Flash <em>won&#8217;t</em> get translated).</p>
<p>The TED strap-line &#8216;Riveting talks by remarkable people, free to the world&#8217; is brilliant, yet I think the world could really enjoy TED a lot more if they made a few simple changes:</p>
<p>1. Redesign the video player. Create an icon denoting other language support (and my attempt below is by no means a great icon!) and vitally list languages in their native name (just like on Wikipedia entry pages) &#8212; also apply this anywhere else on the site where languages are listed.</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/05/ted2.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/05/ted2.png" alt="TED Video player" title="ted2" width="450" height="388" class="aligncenter size-full wp-image-290" /></a></p>
<p>Sure, there&#8217;s still English in the subtitles area, but I think something like this would be a tremendous step in the right direction. And an extra killer feature would be defaulting subtitles (if available) to the user&#8217;s language.</p>
<p>2. Look at the user&#8217;s default browser language and give them a clear invitation to view translations in their language:</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/05/mira.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/05/mira.png" alt="TED en español" title="mira" width="450" height="320" class="aligncenter size-full wp-image-287" /></a></p>
<p>Of course it&#8217;s easy for someone to think up design ideas for someone else&#8217;s website: I know nothing about how the TED site works and whether any of this is even feasible, but I still felt it worth noting these ideas down, as it would be great to see the TED site provide a better experience for non-English speaking users.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/ted-translations-free-to-the-world/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why is Flash so lousy at localisation?</title>
		<link>http://www.codehesive.com/index.php/archive/why-is-flash-so-lousy-at-localization/</link>
		<comments>http://www.codehesive.com/index.php/archive/why-is-flash-so-lousy-at-localization/#comments</comments>
		<pubDate>Sat, 07 May 2011 14:21:15 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[   Web Design + Development]]></category>
		<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Localisation]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/?p=181</guid>
		<description><![CDATA[Originally I intended this post to be a series of examples demonstrating some of the hassles involved when dealing with multi-lingual content in Flash. But it occurred to me that the issue isn&#8217;t so much that Flash is difficult for this purpose, it&#8217;s more that it&#8217;s lousy. It&#8217;s way behind the curve considering where the [...]]]></description>
			<content:encoded><![CDATA[<p>Originally I intended this post to be a series of examples demonstrating some of the hassles involved when dealing with multi-lingual content in Flash. But it occurred to me that the issue isn&#8217;t so much that Flash is difficult for this purpose, it&#8217;s more that it&#8217;s <em>lousy</em>. It&#8217;s way behind the curve considering where the rest of the web is today in this regard, and incredibly the situation was far worse not much more than twelve months ago (before Adobe released <a href="http://tv.adobe.com/watch/learn-flash-professional-cs5/creating-text-with-the-new-text-layout-framework-tlf">Flash CS5 and the Text Layout Framework</a>).</p>
<p>The rationale for this post came after attending a talk at SXSW 2011 &#8212; &#8216;<a href="http://schedule.sxsw.com/events/event_IAP6458">Flash is Dead, Long Live Flash!</a>&#8216;. The presenters, <a href="http://twitter.com/#!/ElliotChong">Elliot Chong</a> and <a href="http://www.tobymiller.com/">Toby Miller</a>, gave a great overview of strengths and weaknesses of both Flash and HTML 5. However, one point of debate they missed was localisation. Not that I expected to hear it, but I feel strongly about such things considering this is a big part of my <a href="http://www.bbcworldservice.com">day job</a>. During the Q&#038;A session, I brought up the point of localisation &#8212; but explaining technical trivialities on the spur of the moment in front of a large crowd of peers can be tricky: hence this post.</p>
<p><span id="more-181"></span></p>
<p>Let&#8217;s start with the simple things. Now Flash actually provides fine support for most languages &#8212; even Chinese and Japanese are OK. Until you get into <a href="http://en.wikipedia.org/wiki/Complex_text_layout">complex scripts</a> &#8212; we&#8217;re talking Arabic, Fari, Hindi, Urdu and many more. Basically any alphabet that changes the ligatures between characters, depending on the characters present.</p>
<p><em>Caveat:</em> I&#8217;m a designer first and developer second&#8230; if I&#8217;ve got something wrong here please let me know &#8212; anything new I can learn to make my life easier is always appreciated!</p>
<p>So, let&#8217;s look at what problems Flash will give us trying to put Arabic text on to the stage. Let&#8217;s use the Arabic word for kitten. This is how it appears correctly rendered in plain old HTML (right aligned since Arabic is read right-to-left &#8212; another point to touch on, but we&#8217;ll get to that later).</p>
<div lang="ar" xml:lang="ar" style="height:100px;width:450px;line-height:10em;background:#f8dc86;color:#243616;font-family:arial,sans-serif;text-direction:rtl;text-align:right;"><span style="padding:5px;font-size:85px;">القطط</span></div>
<p><script type="text/javascript">
$(function() {
$("div#e1 div").flashembed("/flash_i18n/kittens01.swf");
$("div#e2 div").flashembed("/flash_i18n/kittens02.swf");
$("div#e3 div").flashembed("/flash_i18n/kittens03.swf");
$("div#e4 div").flashembed("/flash_i18n/kittens04.swf");
$("div#e5 div").flashembed("/flash_i18n/kittens05.swf");
$("div#e10 div").flashembed("/flash_i18n/kittens10.swf");
$("div#e11 div").flashembed("/flash_i18n/kittens11.swf");
$("div#e12 div").flashembed("/flash_i18n/kittens12.swf");
$("div#e20 div").flashembed("/flash_i18n/kittens20.swf");
$("div#e21 div").flashembed("/flash_i18n/kittens21.swf");
});
</script></p>
<style type="text/css">
.kittens{margin-top:4px;position:relative;height:100px;width:450px;height:100px;background:url(/flash_i18n/bg_kitten_ar.png) no-repeat 0 0 #F8DC86}
.kittens div{width:200px;height:100px;position:absolute;top:0;right:0;}
.fullwidth{background-image:none;}
.fullwidth div{width:450px}
</style>
<p>Now, let&#8217;s try and show the same text in Flash&#8230;</p>
<h3>Example one: classic text field (SWF size: 4kb)</h3>
<div id="e1" class="kittens">
<div></div>
</div>
<p>The simplest way to put text on the stage in Flash is with a simple text box. Just create it on the stage, copy your text, and you&#8217;re away. But no, not with complex scripts. For some reason Flash is incapable of rendering the ligatures between characters together correctly in classic text fields. And the web is full of <a href="http://www.google.co.uk/search?q=flash+arabic+text+field&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:en-GB:official&#038;client=firefox-a">depressing forum posts</a> about people enduring frustrations at what appears to be such a trivial thing.</p>
<h3>Example two: dynamic text field (SWF size: 4kb)</h3>
<div id="e2" class="kittens">
<div></div>
</div>
<p>Again, this renders exactly the same as example one. Having dashed your hopes of static text displaying properly, surely you didn&#8217;t expect to be able to use dynamic text fields?</p>
<h3>Example three: <a href="http://tv.adobe.com/watch/learn-flash-professional-cs5/creating-text-with-the-new-text-layout-framework-tlf">Text Layout Framework (TLF)</a> text field (SWF size: 52KB)</h3>
<div id="e3" class="kittens">
<div></div>
</div>
<p>Hoorah! OK, so some credit to Adobe here &#8212; so you can display complex scripts properly straight on the stage. But <em>only</em> if you use the new <a href="http://tv.adobe.com/watch/learn-flash-professional-cs5/creating-text-with-the-new-text-layout-framework-tlf">Text Layout Framework</a>, which requires Flash CS5 and Flash Player 10+. And you can expect an additional 50kb on top of the SWF size! Prior to Flash CS5&#8242;s release in April 2010, this was all but impossible: the only way to display complex scripts in Flash properly was either as a vector exported from something like Illustrator (which, by the way, has supported complex scripts for a long long time) or as a bitmap from Photoshop (again, supports complex scripts).</p>
<h3>Example four: programmatic text field (SWF size: 52KB)</h3>
<div id="e4" class="kittens">
<div></div>
</div>
<p>Let&#8217;s try creating the text field with ActionScript:<br />
<code><br />
var myFormat:TextFormat = new TextFormat();<br />
myFormat.color = 0x233515;<br />
myFormat.size = 76;<br />
myFormat.font = "Arial";<br />
myFormat.align = TextFormatAlign.RIGHT;</p>
<p>var myTextField:TextField = new TextField();<br />
myTextField.text = "القطط";<br />
myTextField.width = 190;<br />
myTextField.height = 100;<br />
myTextField.selectable = true;<br />
myTextField.y = 6;<br />
myTextField.defaultTextFormat = myFormat;<br />
myTextField.setTextFormat(myFormat);  </p>
<p>addChild(myTextField);<br />
</code></p>
<p>Well, at least Flash renders the text in the correct order, but it still doesn&#8217;t correctly render the ligatures.</p>
<h3>Example five: programmatic Text Layout Framework text field (SWF size: 112KB)</h3>
<div id="e5" class="kittens">
<div></div>
</div>
<p>Let&#8217;s try creating the text field with ActionScript using the Text Layout Framework:<br />
<code><br />
import flash.display.Sprite;<br />
import flashx.textLayout.compose.StandardFlowComposer;<br />
import flashx.textLayout.container.ContainerController;<br />
import flashx.textLayout.elements.TextFlow;<br />
import flashx.textLayout.conversion.TextConverter;<br />
import flashx.textLayout.edit.SelectionManager;</p>
<p>var&nbsp;markup:String&nbsp;=<br />
"&lt;TextFlow&nbsp;xmlns='http://ns.adobe.com/textLayout/2008' fontSize='85' color='#233515' textIndent='15' paragraphSpaceAfter='15' font='Arial' paddingTop='25' paddingRight='25'&gt;<br />
&lt;ptextAlign='right'&gt;القطط&lt;/p&gt;&lt;/TextFlow&gt;";</p>
<p>var&nbsp;textFlow:TextFlow&nbsp;=&nbsp;TextConverter.importToFlow(markup,<br />
TextConverter.TEXT_LAYOUT_FORMAT);<br />
textFlow.flowComposer.addController(new ContainerController(this, 200, 100));<br />
textFlow.flowComposer.updateAllControllers();<br />
textFlow.interactionManager = new SelectionManager();<br />
</code></p>
<p>Hoorah, Text Layout Framework comes through again. But look at the file size now: 112KB. That&#8217;s 28 times the size of creating a simple text field programmatically. </p>
<p>Of course Text Layout Framework gives you a huge amount of text control, so the larger file size is somewhat understandable &#8212; but that big? Just to render a simple word?</p>
<p>These are all very simple examples, but just imagine how much more complex most projects will get in Flash if localisation is required. The extra complexity (and increased file size) from using Text Layout Framework would surely discourage most developers from using it, particularly if there is no need for localisation at the beginning of the project. This introduces a potential nightmare scenario of <em>rewriting entire applications</em> to use Text Layout Framework.</p>
<h2>Other gotchas with Flash and localisation</h2>
<h3>Font embedding</h3>
<p>Embedding fonts in your project? Your standard Latin character set (which covers most European languages) is pretty light weight. Let&#8217;s look at kitten in other languages:</p>
<h3>Example six: Latin font embedding (SWF size: 55KB)</h3>
<div id="e10" class="kittens fullwidth">
<div></div>
</div>
<p>Even adding in Latin I, Latin A and Latin B extended character sets for a font only adds about 56kb to your file (using Arial Unicode as your font). That&#8217;ll cover pretty much any Latin-based alphabet, from Icelandic through to Turkish. But now, let&#8217;s add Cyrillic and Greek. </p>
<h3>Example seven: Latin, Cyrillic and Greek font embedding (SWF size: 85KB)</h3>
<div id="e11" class="kittens fullwidth">
<div></div>
</div>
<p>Now we&#8217;re looking at another 32kb on top &#8212; 85kb in total. Now that&#8217;s really not much&#8230; but let&#8217;s now look at Chinese and Japanese.</p>
<h3>Example eight: Latin, Cyrillic, Greek, Simplified Chinese and Japanese font embedding (SWF size: 3.8mb)</h3>
<div id="e12" class="kittens fullwidth">
<div></div>
</div>
<p>For an embedded font that covers Latin, Cyrillic, Simplified Chinese and Japanese &#8212; you&#8217;re looking at a whopping 3.8mb.</p>
<p>So, if you&#8217;re planning on localising with dynamic Flash applications across many languages, you have two choices:</p>
<ol>
<li>Don&#8217;t embed fonts, just use device fonts &#8212; you&#8217;ll lose your nice text on many PCs, but your file size will be manageable</li>
<li>Embed fonts but create different files for each language &#8212; again, file size manageable but then you&#8217;re re-creating a whole bunch of files, and maintenance can become quite a nightmare if you&#8217;re not careful</li>
</ol>
<h3>The right-to-left UI</h3>
<p>Many right-to-left (RTL) languages are also complex scripts, so we&#8217;ve got a bit of a double-whammy here. Arabic, Farsi, Urdu&#8230; and even Hebrew (although at least that&#8217;s not a complex script!). Since RTL users read right to left, a good UI designer will re-align the interface in the same way: for instance, check out <a href="http://www.google.co.il/">Google Israel</a> or <a href="http://www.google.com/webhp?hl=fa">Google in Farsi</a>, and notice how the entire screen is &#8216;flipped&#8217; around. Even close buttons on dialogue boxes get flipped (such as this example from <a href="http://www.google.com/imgres?imgurl=http://library.gnome.org/misc/release-notes/2.20/figures/rnusers-arabic-window-switcher.png.oc&#038;imgrefurl=http://library.gnome.org/misc/release-notes/2.20/index.html.oc&#038;usg=__R7iCtNl8ltxmEyzoCvOYxnvcfzw=&#038;h=588&#038;w=750&#038;sz=264&#038;hl=en&#038;start=0&#038;sig2=H4e6wTWXgTDUBKBZN--foQ&#038;zoom=1&#038;tbnid=qi9HoDtp6NE_NM:&#038;tbnh=142&#038;tbnw=181&#038;ei=8dvDTd_VBsmo8AO01P39BA&#038;prev=/search%3Fq%3Dwindows%2Barabic%26um%3D1%26hl%3Den%26client%3Dfirefox-a%26hs%3Dpne%26rls%3Dorg.mozilla:en-US:official%26biw%3D1329%26bih%3D772%26tbm%3Disch&#038;um=1&#038;itbs=1&#038;iact=hc&#038;vpx=541&#038;vpy=87&#038;dur=1937&#038;hovh=199&#038;hovw=254&#038;tx=108&#038;ty=101&#038;page=1&#038;ndsp=24&#038;ved=1t:429,r:2,s:0">GNOME</a> on Linux).</p>
<p>This means you should do the same for all UI inside your Flash application. While it&#8217;s a bit of a hassle at first, what I&#8217;ve found causes the most problems when doing this is Flash&#8217;s Cartesian coordinate system &#8212; X and Y works great for left-to-right, but not so for right-to-left. </p>
<p>Align an object to the top left? Easy:<br />
<code>mc_object.y=10;<br />
mc_object.x=10;</code></p>
<p>But for RTL, we want it on the top right.<br />
<code>mc_object.y=10;<br />
mc_object.x=(stage.stageWidth-10);</code></p>
<p>When you&#8217;re doing that for all your UI elements, it can turn into a real chore. Never mind if you run into <a href="http://www.google.com/search?q=flash+browser+bug+stageWidth&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:en-US:official&#038;client=firefox-a#sclient=psy&#038;hl=en&#038;client=firefox-a&#038;hs=JGK&#038;rls=org.mozilla:en-US%3Aofficial&#038;source=hp&#038;q=flash+bug+stageWidth&#038;aq=f&#038;aqi=&#038;aql=&#038;oq=&#038;pbx=1&#038;bav=on.2,or.r_gc.r_pw.&#038;fp=83cdbc92ed5cf93c">stage.Width calculation bugs</a> which do happen when viewing the SWF in various browsers.</p>
<p>What if we were developing a HTML/CSS/Javascript application instead?</p>
<p><code><br />
#object{position:absolute;top:10px;}<br />
.rtl #object{right:10px;}<br />
.ltr #object{left:10px;}<br />
</code></p>
<p>Much, much easier! (Of course, there are plenty of browser bugs with CSS too, so it&#8217;s by no way perfect, but it is much better).</p>
<h3>Flash UI Components</h3>
<p>Using Flash&#8217;s inbuilt UI Components will cause you some problems too. You can move the scrollbar on a scrolling TLF text field to the right at least (you can do this <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/ScrollControlBase.html">programmatically</a>, too):</p>
<h3>Example nine: right-to-left scrollbar (SWF size: 119kb)</h3>
<div id="e20" class="kittens fullwidth">
<div></div>
</div>
<p>But it appears many other components (such as the <a href="http://forums.adobe.com/thread/694280">combobox</a>) have no TLF support <em>or</em> the ability to make them more RTL friendly (all the text below is rendered incorrectly in Arabic):</p>
<h3>Example ten: other Flash UI components (SWF size: 49kb)</h3>
<div id="e21" class="kittens fullwidth">
<div></div>
</div>
<h3>Conclusion</h3>
<p>For anyone looking at creating Rich Internet Applications that will work across different locales, given the growing market acceptance of CSS3, HTML5 and already accepted tools such as jQuery, Flash is looking like a really hard task for such work. </p>
<p>But disregarding all those points, let&#8217;s go back to the main thrust of this post: why is Flash so lousy at localisation? There are an estimated <a href="http://www.internetworldstats.com/stats7.htm">65 million Arabic users online</a>, and if you want to use Flash to provide content for these users, you&#8217;re in for a ludicrous development experience. For me, it&#8217;s really not good enough. Years ago Flash was targeted as being highly inaccessible, and even though it has made good progress, it&#8217;s highly inaccessible in another way: that of localisation.</p>
<p><a href="/flash_i18n/kitten_examples.zip">Download example Flash files</a> from this post (1mb).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/why-is-flash-so-lousy-at-localization/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stuck!</title>
		<link>http://www.codehesive.com/index.php/archive/stuck/</link>
		<comments>http://www.codehesive.com/index.php/archive/stuck/#comments</comments>
		<pubDate>Thu, 03 May 2007 21:33:12 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[   Web Design + Development]]></category>
		<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/blog/index.php/archive/stuck/</guid>
		<description><![CDATA[Looking for hotels tonight on Radisson Hotels website and I quite literally got stuck. Trying to select a date range, the pop up date picker conveniently hides behind the big flashy Flash banner like some shy child cowering behind a parent&#8217;s leg. Manually entering dates is also frustrating as some part of the Javascript intermittently [...]]]></description>
			<content:encoded><![CDATA[<p>Looking for hotels tonight on <a href="http://www.radisson.com">Radisson Hotels website</a> and I quite literally got stuck. Trying to select a date range, the pop up date picker conveniently hides behind the big flashy Flash banner like some shy child cowering behind a parent&#8217;s leg.</p>
<p><img src="radisson.png" alt="Screenshot of Radisson homepage" width="406" height="495" /></p>
<p>Manually entering dates is also frustrating as some part of the Javascript intermittently clears the field when changing focus between the fields. Initially I honestly couldn&#8217;t get a date in. I&#8217;ve since tried again and it worked (barely). Just as well there&#8217;s a fairly obvious <a href="http://www.radisson.com/reservation/clearReservation.do">Reservations</a> link in the top bar.</p>
<p>By the way, anyone know of any good hotels in Calgary?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/stuck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>British Design Museum and Accessibility</title>
		<link>http://www.codehesive.com/index.php/archive/british-design-museum-and-accessibility/</link>
		<comments>http://www.codehesive.com/index.php/archive/british-design-museum-and-accessibility/#comments</comments>
		<pubDate>Fri, 03 Mar 2006 12:29:44 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[   Web Design + Development]]></category>
		<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/blog/index.php/archive/british-design-museum-and-accessibility/</guid>
		<description><![CDATA[According to the British Design Museum website, they are: &#8230;well-equipped to welcome visitors with disabilities. Our facilities include: lifts, wheelchair access, adapted toilets, and audio guides for selected exhibitions. The irony of all this is that in the HTML version of the site (as opposed to the Flash) this text is rendered in a GIF [...]]]></description>
			<content:encoded><![CDATA[<p>According to the <a href="http://www.designmuseum.org">British Design Museum website</a>, they are:</p>
<blockquote><p>&#8230;well-equipped to welcome visitors with disabilities. Our facilities include: lifts, wheelchair access, adapted toilets, and audio guides for selected exhibitions.</p></blockquote>
<p>The irony of all this is that in the HTML version of the site (as opposed to the Flash) this text is <a href="http://www.designmuseum.org/httpd/html/img/admission/chart.gif">rendered in a GIF</a> with no alt text (and not considering the fact the site launches several pop-up windows). So unlucky if you&#8217;re visually impaired.</p>
<p>Or does this raise the question of whether you could truly appreciate a Design Museum if you were visually impaired? Or an art gallery? Or museums in general?</p>
<p>Regardless I do love the irony of disability services information appearing in probably the most inaccessible way possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/british-design-museum-and-accessibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

