<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" version="2.0">
<channel>
	<title>456 Berea Street</title>
	<link>http://www.456bereastreet.com/</link>
	
	<description>Roger Johansson is a web professional specialising in web standards, accessibility, and usability.</description>
	<dc:language>en</dc:language>
	<dc:date>2012-05-18T10:25:27+01:00</dc:date>

	<feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="456bereastreet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><meta xmlns="http://pipes.yahoo.com" name="pipes" content="noprocess" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://www.456bereastreet.com/feed.xml" /><item>
		<title>CSS generated content and screen readers</title>
		<link>http://www.456bereastreet.com/archive/201205/css_generated_content_and_screen_readers/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>Accessibility</category>

		<category>CSS</category>

		<guid>http://www.456bereastreet.com/archive/201205/css_generated_content_and_screen_readers/</guid>
		<description>&lt;p class="preamble"&gt;As all widely used web browsers (unless you still consider IE7 as being widely used) now support &lt;a href="http://www.w3.org/TR/CSS21/generate.html#before-after-content"&gt;the :before and :after pseudo-elements&lt;/a&gt; along with &lt;a href="http://www.w3.org/TR/CSS21/generate.html#content"&gt;the content property&lt;/a&gt;, using those pseduo-elements has become more and more common.&lt;/p&gt;

&lt;p&gt;There are many clever CSS tricks they can be used for, like implementing a particular design without having to insert extra markup into your HTML. There is one catch though, and many developers seem unaware of this: several screen readers will speak content that is created this way. VoiceOver does (in both OS X and iOS). NVDA does when used with Firefox, though not with IE. I made a &lt;a href="http://www.456bereastreet.com/lab/generated-content/"&gt;CSS generated content demo page&lt;/a&gt; so you can try it yourself.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201205/css_generated_content_and_screen_readers/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/accessibility/" rel="tag"&gt;Accessibility&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/css/" rel="tag"&gt;CSS&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DhR_G3Bf0THuSgnDYE5TUO9ZcIk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DhR_G3Bf0THuSgnDYE5TUO9ZcIk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DhR_G3Bf0THuSgnDYE5TUO9ZcIk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DhR_G3Bf0THuSgnDYE5TUO9ZcIk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=MVWLI033vvI:j2t-ECI3LP4:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=MVWLI033vvI:j2t-ECI3LP4:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=MVWLI033vvI:j2t-ECI3LP4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=MVWLI033vvI:j2t-ECI3LP4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=MVWLI033vvI:j2t-ECI3LP4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=MVWLI033vvI:j2t-ECI3LP4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/MVWLI033vvI" height="1" width="1"/&gt;</description>
		<dc:date>2012-05-18T10:25:27+01:00</dc:date>
	</item>

	<item>
		<title>iOS orientation change and automatic text resizing</title>
		<link>http://www.456bereastreet.com/archive/201205/ios_orientation_change_and_automatic_text_resizing/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>CSS</category>

		<category>JavaScript</category>

		<category>iOS</category>

		<guid>http://www.456bereastreet.com/archive/201205/ios_orientation_change_and_automatic_text_resizing/</guid>
		<description>&lt;p class="preamble"&gt;Most web developers who have viewed their work in an iOS device know that Safari for iOS likes to zoom in on the page and do weird things to font size when you change the device’s orientation from portrait to landscape. A too common way to prevent that is to completely disable the user’s ability to zoom, which you really do not want to do.&lt;/p&gt;

&lt;p&gt;Luckily there is &lt;a href="http://filamentgroup.com/lab/a_fix_for_the_ios_orientationchange_zoom_bug/"&gt;A Fix for the iOS Orientationchange Zoom Bug&lt;/a&gt;, a very clever one too. I’ve been using this in a few projects and have found it to work well. I have however run into a couple of issues (that in hindsight are pretty obvious) that I want to note here as a reminder to my future self.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201205/ios_orientation_change_and_automatic_text_resizing/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/css/" rel="tag"&gt;CSS&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/javascript/" rel="tag"&gt;JavaScript&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/ios/" rel="tag"&gt;iOS&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Cca4S8QD-wqbCV1CmBntad957P4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Cca4S8QD-wqbCV1CmBntad957P4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Cca4S8QD-wqbCV1CmBntad957P4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Cca4S8QD-wqbCV1CmBntad957P4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=e_rRVvadwrY:G-8NvGxDfWo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=e_rRVvadwrY:G-8NvGxDfWo:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=e_rRVvadwrY:G-8NvGxDfWo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=e_rRVvadwrY:G-8NvGxDfWo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=e_rRVvadwrY:G-8NvGxDfWo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=e_rRVvadwrY:G-8NvGxDfWo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/e_rRVvadwrY" height="1" width="1"/&gt;</description>
		<dc:date>2012-05-09T19:49:24+01:00</dc:date>
	</item>

	<item>
		<title>Make sure your HTML5 document outline is backwards compatible</title>
		<link>http://www.456bereastreet.com/archive/201205/make_sure_your_html5_document_outline_is_backwards_compatible/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>Accessibility</category>

		<category>HTML 5</category>

		<guid>http://www.456bereastreet.com/archive/201205/make_sure_your_html5_document_outline_is_backwards_compatible/</guid>
		<description>&lt;p class="preamble"&gt;This is just a short reminder of something I wrote about in &lt;a href="http://www.456bereastreet.com/archive/201106/on_using_h1_for_all_heading_levels_in_html5/"&gt;On using h1 for all heading levels in HTML5&lt;/a&gt;: make sure your HTML5 document outline is backwards compatible.&lt;/p&gt;

&lt;p&gt;The reason is simple. Browsers and assistive technology haven’t implemented the HTML5 outline algorithm yet (the only exception I’m aware of is JAWS, which gets it wrong, as Jason Kiss explains in &lt;a href="http://www.accessibleculture.org/articles/2011/10/jaws-ie-and-headings-in-html5/"&gt;JAWS, IE and Headings in HTML5&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201205/make_sure_your_html5_document_outline_is_backwards_compatible/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/accessibility/" rel="tag"&gt;Accessibility&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/html_5/" rel="tag"&gt;HTML 5&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Mjv6XTU2EpTAaTAB2VOKICN5D1s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Mjv6XTU2EpTAaTAB2VOKICN5D1s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Mjv6XTU2EpTAaTAB2VOKICN5D1s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Mjv6XTU2EpTAaTAB2VOKICN5D1s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=ASUY_cc4GTo:Fzfh1-2RUas:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=ASUY_cc4GTo:Fzfh1-2RUas:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=ASUY_cc4GTo:Fzfh1-2RUas:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=ASUY_cc4GTo:Fzfh1-2RUas:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=ASUY_cc4GTo:Fzfh1-2RUas:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=ASUY_cc4GTo:Fzfh1-2RUas:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/ASUY_cc4GTo" height="1" width="1"/&gt;</description>
		<dc:date>2012-05-02T19:43:46+01:00</dc:date>
	</item>

	<item>
		<title>Automatic line breaks in narrow columns with CSS 3 hyphens and word-wrap</title>
		<link>http://www.456bereastreet.com/archive/201204/automatic_line_breaks_in_narrow_columns_with_css_3_hyphens_and_word-wrap/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>CSS</category>

		<guid>http://www.456bereastreet.com/archive/201204/automatic_line_breaks_in_narrow_columns_with_css_3_hyphens_and_word-wrap/</guid>
		<description>&lt;p class="preamble"&gt;A problem that has always existed but has become more common lately as more people – thanks to the popularity of &lt;a href="http://en.wikipedia.org/wiki/Responsive_Web_Design"&gt;responsive web design&lt;/a&gt; – make their layouts adapt to narrow viewports, is the lack of automatic hyphenation in web browsers.&lt;/p&gt;

&lt;p&gt;As columns of text become narrower, the risk of a single word being longer than the column width increases. When that happens, the text normally extends outside the column (unless the column element’s &lt;code&gt;overflow&lt;/code&gt; property has been given a different value than the default &lt;code&gt;visible&lt;/code&gt;). The effect can be anything from just a slight visual glitch to unreadable text. Either way it’s something you don’t want to happen.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201204/automatic_line_breaks_in_narrow_columns_with_css_3_hyphens_and_word-wrap/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/css/" rel="tag"&gt;CSS&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/df7cxn61zCv9_iz6RXUolRmOdhs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/df7cxn61zCv9_iz6RXUolRmOdhs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/df7cxn61zCv9_iz6RXUolRmOdhs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/df7cxn61zCv9_iz6RXUolRmOdhs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=uGXfQb02aTE:dFyqSgZzqfc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=uGXfQb02aTE:dFyqSgZzqfc:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=uGXfQb02aTE:dFyqSgZzqfc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=uGXfQb02aTE:dFyqSgZzqfc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=uGXfQb02aTE:dFyqSgZzqfc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=uGXfQb02aTE:dFyqSgZzqfc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/uGXfQb02aTE" height="1" width="1"/&gt;</description>
		<dc:date>2012-04-23T20:54:57+01:00</dc:date>
	</item>

	<item>
		<title>End tags, semi-colons and maintainable code</title>
		<link>http://www.456bereastreet.com/archive/201204/end_tags_semi-colons_and_maintainable_code/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>Coding</category>

		<category>HTML 5</category>

		<category>JavaScript</category>

		<guid>http://www.456bereastreet.com/archive/201204/end_tags_semi-colons_and_maintainable_code/</guid>
		<description>&lt;p class="preamble"&gt;In &lt;a href="http://christianheilmann.com/2012/04/16/of-parser-fetishists-and-semi-colons/"&gt;Of parser-fetishists and semi-colons&lt;/a&gt;, Chris Heilmann brings up the importance of code maintainability, something that I feel is overlooked a bit too often.&lt;/p&gt;

&lt;p&gt;The main issue Chris talks about is omitting semi-colons at the end of JavaScript statements, the subject of a current &lt;a href="http://jsdrama.com/"&gt;JavaScript drama&lt;/a&gt;. Doing so &lt;em&gt;is&lt;/em&gt; valid syntax in many cases, and browsers parse and execute the code fine. However, it does not improve code readability for humans, who are often as important to target as the browsers that run the code.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201204/end_tags_semi-colons_and_maintainable_code/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/coding/" rel="tag"&gt;Coding&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/html_5/" rel="tag"&gt;HTML 5&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/javascript/" rel="tag"&gt;JavaScript&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-EuMF7pgVj5ULoqdLNT2RsFemg4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-EuMF7pgVj5ULoqdLNT2RsFemg4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-EuMF7pgVj5ULoqdLNT2RsFemg4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-EuMF7pgVj5ULoqdLNT2RsFemg4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=8k9TcgyuSLU:r5s3j32AL28:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=8k9TcgyuSLU:r5s3j32AL28:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=8k9TcgyuSLU:r5s3j32AL28:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=8k9TcgyuSLU:r5s3j32AL28:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=8k9TcgyuSLU:r5s3j32AL28:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=8k9TcgyuSLU:r5s3j32AL28:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/8k9TcgyuSLU" height="1" width="1"/&gt;</description>
		<dc:date>2012-04-17T19:34:31+01:00</dc:date>
	</item>

	<item>
		<title>The HTML5 placeholder attribute is not a substitute for the label element</title>
		<link>http://www.456bereastreet.com/archive/201204/the_html5_placeholder_attribute_is_not_a_substitute_for_the_label_element/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>Accessibility</category>

		<category>HTML 5</category>

		<category>Quick Tips</category>

		<category>Usability</category>

		<guid>http://www.456bereastreet.com/archive/201204/the_html5_placeholder_attribute_is_not_a_substitute_for_the_label_element/</guid>
		<description>&lt;p class="preamble"&gt;One of the useful things in HTML5 is the &lt;code&gt;placeholder&lt;/code&gt; attribute that lets you specify a short hint for text input fields (&lt;code&gt;textarea&lt;/code&gt; elements and the text states of the &lt;code&gt;input&lt;/code&gt; element). In browsers that implement &lt;code&gt;placeholder&lt;/code&gt; according to the specification, the hint text is displayed only when the field is empty and unfocused.&lt;/p&gt;

&lt;p&gt;This is good since it gives you an opportunity to provide the user with hints regarding what they are expected to enter in the field. What is &lt;strong&gt;not&lt;/strong&gt; good is that the &lt;code&gt;placeholder&lt;/code&gt; attribute is often used as a substitute for the &lt;code&gt;label&lt;/code&gt; element. I’ve seen this in various demos of the &lt;code&gt;placeholder&lt;/code&gt; attribute as well as in demos for scripts that emulate the &lt;code&gt;placeholder&lt;/code&gt; attribute in browsers that don’t natively support it. So some developers appear to misunderstand what the &lt;code&gt;placeholder&lt;/code&gt; attribute is meant for and how it works.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201204/the_html5_placeholder_attribute_is_not_a_substitute_for_the_label_element/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/accessibility/" rel="tag"&gt;Accessibility&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/html_5/" rel="tag"&gt;HTML 5&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/quick_tips/" rel="tag"&gt;Quick Tips&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/usability/" rel="tag"&gt;Usability&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/y4vYAzJyK5zrGHR0QYpRo9nlP8c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y4vYAzJyK5zrGHR0QYpRo9nlP8c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/y4vYAzJyK5zrGHR0QYpRo9nlP8c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y4vYAzJyK5zrGHR0QYpRo9nlP8c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=P-7WcIZPvkc:FN74Z_hTDTY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=P-7WcIZPvkc:FN74Z_hTDTY:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=P-7WcIZPvkc:FN74Z_hTDTY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=P-7WcIZPvkc:FN74Z_hTDTY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=P-7WcIZPvkc:FN74Z_hTDTY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=P-7WcIZPvkc:FN74Z_hTDTY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/P-7WcIZPvkc" height="1" width="1"/&gt;</description>
		<dc:date>2012-04-09T07:15:04+01:00</dc:date>
	</item>

	<item>
		<title>Use only what you need</title>
		<link>http://www.456bereastreet.com/archive/201203/use_only_what_you_need/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>CSS</category>

		<category>Coding</category>

		<category>JavaScript</category>

		<guid>http://www.456bereastreet.com/archive/201203/use_only_what_you_need/</guid>
		<description>&lt;p class="preamble"&gt;The other day Rachel Andrew posted &lt;a href="http://www.rachelandrew.co.uk/archives/2012/03/21/stop-solving-problems-you-dont-yet-have/"&gt;Stop solving problems you don’t yet have&lt;/a&gt;, where she brings up an increasingly common problem with front-end development – unnecessary bloat.&lt;/p&gt;

&lt;p&gt;I agree completely. Too many people include too much by default in their web projects these days. Boilerplates, polyfills, shivs, crazy conditional comments, rare or uneccesary meta elements, and so on.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201203/use_only_what_you_need/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/css/" rel="tag"&gt;CSS&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/coding/" rel="tag"&gt;Coding&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/javascript/" rel="tag"&gt;JavaScript&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zGkZKSyPGq3QeQld5ohOeU-aJzo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zGkZKSyPGq3QeQld5ohOeU-aJzo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zGkZKSyPGq3QeQld5ohOeU-aJzo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zGkZKSyPGq3QeQld5ohOeU-aJzo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=277sBHlC1f0:6yiIi_TPEVw:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=277sBHlC1f0:6yiIi_TPEVw:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=277sBHlC1f0:6yiIi_TPEVw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=277sBHlC1f0:6yiIi_TPEVw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=277sBHlC1f0:6yiIi_TPEVw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=277sBHlC1f0:6yiIi_TPEVw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/277sBHlC1f0" height="1" width="1"/&gt;</description>
		<dc:date>2012-03-23T07:33:56+01:00</dc:date>
	</item>

	<item>
		<title>Skip links and other in page links in WebKit browsers</title>
		<link>http://www.456bereastreet.com/archive/201203/skip_links_and_other_in_page_links_in_webkit_browsers/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>Accessibility</category>

		<category>Browsers</category>

		<guid>http://www.456bereastreet.com/archive/201203/skip_links_and_other_in_page_links_in_webkit_browsers/</guid>
		<description>&lt;p class="preamble"&gt;Recently a coworker pointed me to an article explaining &lt;a href="http://whatisdamon.com/blog/?p=247"&gt;Why your ‘Skip to Content’ link might not work&lt;/a&gt; in WebKit-based browsers like Safari and Chrome. Read the article for details or read my post from September 2005 about &lt;a href="http://www.456bereastreet.com/archive/200509/keyboard_navigation_problems_in_ie_and_safari/"&gt;Keyboard navigation problems in IE and Safari&lt;/a&gt; for a briefer explanation.&lt;/p&gt;

&lt;p&gt;In summary: following an in page link (a link that targets an element on the same page, like &lt;code&gt;&amp;lt;a href="#main"&amp;gt;Skip to main content&amp;lt;/a&amp;gt;&lt;/code&gt;) does not properly move keyboard focus in WebKit browsers. This means that when you press tab after activating an in page link, focus is moved to the first focusable element after the &lt;strong&gt;link&lt;/strong&gt; rather than the first focusable element after the &lt;strong&gt;target&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201203/skip_links_and_other_in_page_links_in_webkit_browsers/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/accessibility/" rel="tag"&gt;Accessibility&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/browsers/" rel="tag"&gt;Browsers&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a7FYsXNJMWSjxNwHRG_pZuzlgEY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a7FYsXNJMWSjxNwHRG_pZuzlgEY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a7FYsXNJMWSjxNwHRG_pZuzlgEY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a7FYsXNJMWSjxNwHRG_pZuzlgEY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=wu8hZU8NZDY:3kSXzybudKU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=wu8hZU8NZDY:3kSXzybudKU:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=wu8hZU8NZDY:3kSXzybudKU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=wu8hZU8NZDY:3kSXzybudKU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=wu8hZU8NZDY:3kSXzybudKU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=wu8hZU8NZDY:3kSXzybudKU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/wu8hZU8NZDY" height="1" width="1"/&gt;</description>
		<dc:date>2012-03-09T12:42:23+01:00</dc:date>
	</item>

	<item>
		<title>Using max-width on images can make them disappear in IE8</title>
		<link>http://www.456bereastreet.com/archive/201202/using_max-width_on_images_can_make_them_disappear_in_ie8/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>Browsers</category>

		<category>CSS</category>

		<guid>http://www.456bereastreet.com/archive/201202/using_max-width_on_images_can_make_them_disappear_in_ie8/</guid>
		<description>&lt;p class="preamble"&gt;I recently ran into a problem that was really hard to figure out. I was working on a responsive design where I used &lt;code&gt;img {max-width:100%;}&lt;/code&gt; to make sure that images would be downsized rather than overflow in narrower viewports.&lt;/p&gt;

&lt;p&gt;It worked great everywhere… until I went to check in IE8. The site’s logo was gone! None of the usual IE bug fixes cured the problem, and it took me quite a while to realise that &lt;code&gt;max-width&lt;/code&gt; was part of the problem.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201202/using_max-width_on_images_can_make_them_disappear_in_ie8/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/browsers/" rel="tag"&gt;Browsers&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/css/" rel="tag"&gt;CSS&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/asg0urLjdoS0RTfxGyMYPtxGsJ4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/asg0urLjdoS0RTfxGyMYPtxGsJ4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/asg0urLjdoS0RTfxGyMYPtxGsJ4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/asg0urLjdoS0RTfxGyMYPtxGsJ4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=PJ-73eQrVNc:8b_RwN5WA6g:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=PJ-73eQrVNc:8b_RwN5WA6g:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=PJ-73eQrVNc:8b_RwN5WA6g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=PJ-73eQrVNc:8b_RwN5WA6g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=PJ-73eQrVNc:8b_RwN5WA6g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=PJ-73eQrVNc:8b_RwN5WA6g:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/PJ-73eQrVNc" height="1" width="1"/&gt;</description>
		<dc:date>2012-02-02T20:16:54+01:00</dc:date>
	</item>

	<item>
		<title>How to adjust an iframe element’s height to fit its content</title>
		<link>http://www.456bereastreet.com/archive/201112/how_to_adjust_an_iframe_elements_height_to_fit_its_content/</link>
		<dc:creator>Roger Johansson</dc:creator>

		<category>JavaScript</category>

		<category>Usability</category>

		<guid>http://www.456bereastreet.com/archive/201112/how_to_adjust_an_iframe_elements_height_to_fit_its_content/</guid>
		<description>&lt;p class="preamble"&gt;In an ideal world there would always be a clean way of displaying data supplied by a third party on your site. Two examples would be getting the data in JSON or XML format from a Web Service and having an API to code against. But you don’t always have any of those options.&lt;/p&gt;

&lt;p&gt;Sometimes the only way of incorporating data from a third party is by loading it in an &lt;code&gt;iframe&lt;/code&gt; element. A few examples are financial reports, e-commerce applications, and ticket booking applications. Using an &lt;code&gt;iframe&lt;/code&gt; is not ideal for many reasons, one of which is that it can make multiple sets of scrollbars appear on the page. Not only does it look ugly, it also makes the site less user-friendly. But there is a workaround.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/archive/201112/how_to_adjust_an_iframe_elements_height_to_fit_its_content/"&gt;Read full post&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Posted in &lt;a href="http://www.456bereastreet.com/archive/categories/javascript/" rel="tag"&gt;JavaScript&lt;/a&gt;, &lt;a href="http://www.456bereastreet.com/archive/categories/usability/" rel="tag"&gt;Usability&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright © &lt;a href="http://www.456bereastreet.com/"&gt;Roger Johansson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ArraBJwN4OE8zL-nktBh582onsQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ArraBJwN4OE8zL-nktBh582onsQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ArraBJwN4OE8zL-nktBh582onsQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ArraBJwN4OE8zL-nktBh582onsQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=1FEAp_9wLiA:7fK5zikHKuc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=1FEAp_9wLiA:7fK5zikHKuc:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=1FEAp_9wLiA:7fK5zikHKuc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=1FEAp_9wLiA:7fK5zikHKuc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/456bereastreet?a=1FEAp_9wLiA:7fK5zikHKuc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/456bereastreet?i=1FEAp_9wLiA:7fK5zikHKuc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/456bereastreet/~4/1FEAp_9wLiA" height="1" width="1"/&gt;</description>
		<dc:date>2011-12-16T09:06:31+01:00</dc:date>
	</item>

</channel>
</rss>

