<?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>Scrunchup &#187; standards</title>
	<atom:link href="http://scrunchup.com/tag/standards/feed/" rel="self" type="application/rss+xml" />
	<link>http://scrunchup.com</link>
	<description>The Web Magazine for Young Designers and Developers</description>
	<lastBuildDate>Fri, 03 Sep 2010 19:27:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>A Proper Web Standards Education: Part 3</title>
		<link>http://scrunchup.com/issue-3/a-proper-web-standards-education-part-3/</link>
		<comments>http://scrunchup.com/issue-3/a-proper-web-standards-education-part-3/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 00:05:52 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Issue 3]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[semantics]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[webucation]]></category>

		<guid isPermaLink="false">http://scrunchup.com/wordpress/?p=299</guid>
		<description><![CDATA[Chris talks about what can be done to improve the education system with regards to web development.


No related posts.]]></description>
			<content:encoded><![CDATA[<h2 id="education">Education</h2>
<p>From reading the previous parts of my article series, you are probably starting to get an appreciation of web standards and why they are a good thing. You are probably also thinking that the majority of web developers out there are therefore following standards, and the web is a nicer, more fluffy place as a result.</p>
<p>Unfortunately, this is <strong>not</strong> the case. As a measure of how widespread web standards adoption is, <a href="http://dev.opera.com/articles/view/MAMA/">Opera&#8217;s MAMA project</a> trawled over 3.5 million web sites and collected various types of data about them, one of which being whether the page&#8217;s HTML validated or not. The rather worrying result was that 4.13% of sites surveyed actually validated. Why is this figure so bad? There are many reasons why people are not creating valid code and following standards:</p>
<ul>
<li>They&#8217;ve been paid to create sites this way for years &#8211; why should they bother to take time out to learn new skills?</li>
<li>They&#8217;ve never been taught the importance of standards, and don&#8217;t really know they exist. Their course at uni or school didn&#8217;t contain anything about web standards</li>
<li>They are developing sites for a company or university Intranet, and they can guarantee that their users are being forced to use Internet Explorer, therefore they don&#8217;t need to bother with worrying about cross-browser compatibility, and can use Internet Explorer-only technologies such as ActiveX.</li>
<li>They are inexperienced hobbyists, and don&#8217;t want to know about the underlying technology and how it works; they just want to get their &#8220;look at my kittens&#8221; page up on the Web as easily as possible, either by copying and pasting code off a tutorial site, or using a template from an authoring tool such as Dreamweaver or Frontpage.</li>
</ul>
<p>Whatever the background, I think education is the common thing lacking in all the above cases.</p>
<h3 id="education-deficit">The education deficit</h3>
<p>People think that web standards are too hard to learn, or it is too hard to find decent training material, or too expensive to buy books or go on courses.</p>
<p>University courses that touch on web development are usually hopelessly behind the times, and students are rarely taught about web standards. they are usually taught about the Web from the programming direction (&#8220;this web thing isn&#8217;t like real programming; it&#8217;s a bit fiddly and annoying, but I guess you&#8217;d better know about it&#8221;) or the graphics/multimedia direction (&#8220;this web thing is heavily related to graphic design, but it&#8217;s a bit complicated and requires code and stuff &#8211; let&#8217;s see how you go&#8221;). There are few courses that teach web development or design as the central focus, and fewer that teach web standards. I&#8217;ve even heard stores of students being marked down on their course work for using CSS rather than HTML tables for layout and <code>&lt;font&gt;</code> elements for styling, because that is what the curriculum still says to use.</p>
<p>Secondary schools seem to have it even harder. When I was talking to Anna about writing this article, I commented than when I was at school, IT courses sucked because they were nothing more than Word and Excel courses. She commented that basically nothing has changed (in the last thirteen years!) I found this really worrying &#8211; &#8220;the younger generation&#8221; is a lot more IT-literate these days, and from my experience kids already know how to do Word documents and Excel spreadsheets before they get to secondary school. By that point, they are customizing their own pages on social networking sites, and even putting up their own web pages. But courses at secondary school don&#8217;t teach them what they want to learn, so the courses tend to be really poorly subscribed.</p>
<p>I&#8217;ve also heard a lot of my friends at professional companies comment that when recruiting new employees, it is hard to find graduates that possess the basic web standards skills, even though these skills are becoming increasingly more sought after.</p>
<p><strong>DISCLAIMER</strong>: Note than in the above points, I am stating the general pattern I have experienced over the years; I am certainly not trying to say that these points ring true in all cases. If you are, for example, a school or university teacher that does teach web standards effectively, don&#8217;t feel offended. In fact, get in touch with me so you can share your experiences!</p>
<h3 id="web-standards-curriculum">Making a difference &#8211; the web standards curriculum</h3>
<p>WAIIIIIIT A GODDAMN MINUTE!! I said one day (If I remember rightly, it was at about 9.43 one evening, and I was in the bath. It caused quite a stir).</p>
<p>These kinds things were worrying me, so I decided to do something about the situation. I decided to get together with some of my friends and create a definitive course to teach how to do client-side web development properly, using web standards, and make it available online for free:</p>
<ul>
<li>It would dispel complaints that teaching material was hard to find, or expensive.</li>
<li>It would make it easier to get web standards introduced in school and university courses, if ready-made teaching material was available.</li>
<li>It would also give existing web developers a useful resource to learn from, teach others from, or use to justify investment in web standards to their bosses.</li>
</ul>
<p>My employers &#8211; <a href="http://www.opera.com">Opera Software</a> &#8211; are passionate about web standards too, so they agreed to fund the project. After many months of hard work, the <a href="http://www.opera.com/wsc">Web Standards Curriculum</a> was released upon the world. It is completely free for you to use, and released under a <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/">creative commons license</a>, so you can feel free to distribute and republish it, as long as you give the original source a credit, and don&#8217;t try to sell it for money. The granular nature of the course is very useful, as it is easy to chop articles out, change the order, etc, to suit your particular educational needs. There is also another curriculum available called <a href="http://interact.webstandards.org">WaSP InterAct</a> that works in tandem with my course. Opera provides the raw tutorials, and InterAct provides course structures, teaching resources, etc.<br />
.</p>
<h3 id="work-together">Let&#8217;s all work together</h3>
<p>So how can you make a difference? I think my course could really make a difference to web design and development education, and web standards adoption. I&#8217;d like to recommend that you all check out my course, and pass it around to any of your friends that are interested in making their own web pages; I&#8217;d also like to suggest that you give me any feedback that you have on the course, good and bad &#8211; what have we done well, and what could we improve on? What bits of it are hard to understand?</p>
<p>We can go further than this as well &#8211; I&#8217;d like you to help me by evangelising web standards at your school, university or workplace. Share my course with your teacher or boss, and we can try to get them to understand the importance of web standards more.</p>
<p>I&#8217;d also like to start work on introducing some pilot education schemes at universities and secondary schools. I&#8217;d like you to introduce me to your teacher, send me their e-mail address (asking their permission first is a good idea) perhaps, so I can talk to them and see if they are interested in helping to create some kind of scheme, or at least evaluate my course for use at their school.</p>
<p>It isn&#8217;t gonna be easy &#8211; we can&#8217;t hope to effect big changes overnight &#8211; but I believe that if we work together, we can start to make a difference.</p>
<h2>Summary</h2>
<p>And so concludes my overview of web standards, with a small education rant tagged on the end. I hope you found it useful. You can get in touch with me on <a href="http://twitter.com/chrisdavidmills">Twitter</a>, <a href="http://www.facebook.com/chrisdavidmills">Facebook</a>, and <a href="http://my.opera.com/chrismills">My Opera</a>.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://scrunchup.com/issue-3/a-proper-web-standards-education-part-3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Proper Web Standards Education: Part 2</title>
		<link>http://scrunchup.com/issue-2/a-proper-web-standards-education-part-2/</link>
		<comments>http://scrunchup.com/issue-2/a-proper-web-standards-education-part-2/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 00:05:34 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Issue 2]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[semantics]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[webucation]]></category>

		<guid isPermaLink="false">http://scrunchup.com/wordpress/?p=296</guid>
		<description><![CDATA[Chris covers the benefits of writing semantic code, and the importance of making your website accessible


No related posts.]]></description>
			<content:encoded><![CDATA[<h3 id="why-web-standards">Why web standards?</h3>
<p>This is a question many people ask when they first start creating a web page. After all, one reason why web development has always been so accessible to a large number of people is that web browsers are a lot more forgiving when rendering web pages. In contrast to programming in say Java or C++, where syntax errors and suchlike will cause the code compiler to refuse to run your program at all, you can break all kinds of rules in HTML and CSS and still get something that looks ok on the web browser on your computer at home. So why bother imposing extra rules on yourself? The benefits are not immediately obvious, but believe me, you will start to appreciate them as you delve more and more into web development. I&#8217;ll summarise the main reasons in this section.</p>
<h4 id="semantics">Semantics</h4>
<p>Another related concept that is very important when creating web pages is <em>semantics</em> &#8211; this basically means making things self-describing, ie their appearance describes their function or purpose. This may not sound immediately that mind-blowingly useful, but think of it like this &#8211; how useful would a <em>stop</em> sign be if it said &#8220;go&#8221; on it? How useful is a light switch if it is painted to look like a fire alarm?</p>
<p>Transferring this logic on to the Web, how useful is a navigation menu if you can&#8217;t tell what information the links lead to, or even that there are links present at all? I think you get the point now. Semantics are very important in many ways on web pages, and web standards provide you with a perfect means to implement good semantics, as long as you use them properly.</p>
<p>Let&#8217;s look at a quick example. Say you want to put a title up on a web page, followed by a list of things to do on a day (Let&#8217;s not choose a work/school day). How would you structure this using HTML? It is best to choose elements that describe the function of the text, like so:</p>
<ol class="code">
<li><code>&lt;h1&gt;Things to do on Saturday&lt;/h1&gt;</code></li>
<li><code>&lt;ol&gt;</code></li>
<li><code>&lt;li&gt;1pm: Wake up! Have a quick bite to eat at nice cafe down the street.&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;2.30pm: Meet more friends in town and go shopping.&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;5.30pm: Grab something light to eat at home.&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;7.00pm: Have a jam with friends, form a new band.&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;8.00pm: Go to local venue and watch metal bands play.&lt;/li&gt;</code></li>
<li><code>&lt;/ol&gt;</code></li>
</ol>
<p>Well, that&#8217;s my idea of a good time anyway. This code would render as follows:</p>
<div class="example">
<h1>Things to do on Saturday</h1>
<ol>
<li>1pm: Wake up! Have a quick bite to eat at nice cafe down the street.</li>
<li>2.30pm: Meet more friends in town and go shopping.</li>
<li>5.30pm: Grab something light to eat at home.</li>
<li>7.00pm: Have a jam with friends, form a new band.</li>
<li>8.00pm: Go to local venue and watch metal bands play.</li>
</ol>
</div>
<p class="comment">(I&#8217;ve also used a <code>list-style:none;</code> CSS rule to get rid of the default 1, 2, 3, 4, bullets that appear on ordered lists &#8211; view the page source to check this out.)</p>
<p>This is a good way to do it because heading elements (<code>&lt;h1&gt;-&lt;h6&gt;</code>) are the one and only choice for headings/titles on pages, and an ordered list (<code>&lt;ol&gt;</code>) is the best choice for a list of items where the order of the list items (<code>&lt;li&gt;</code>) matters &#8211; it wouldn&#8217;t make sense to try to do these activities out of order! You&#8217;d use an unordered list (<code>&lt;ul&gt;</code>) in cases where the order doesn&#8217;t matter, for example a shopping list.</p>
<p>So why not just mark it up with any old element? You could get a very similar-looking page using the following:</p>
<pre><code>&lt;font size="5"&gt;Things to do on Saturday&lt;/font&gt;
&lt;br&gt;&lt;br&gt;
&lt;font size="2"&gt;1pm: Wake up! Have a quick bite to eat at nice cafe down the street.&lt;/font&gt;
&lt;br&gt;&lt;br&gt;

&lt;font size="2"&gt;2.30pm: Meet more friends in town and go shopping.&lt;/font&gt;
&lt;br&gt;&lt;br&gt;
&lt;font size="2"&gt;5.30pm: Grab something light to eat at home.&lt;/font&gt;
&lt;br&gt;&lt;br&gt;
&lt;font size="2"&gt;7.00pm: Have a jam with friends, form a new band.&lt;/font&gt;

&lt;br&gt;&lt;br&gt;
&lt;font size="2"&gt;8.00pm: Go to local venue and watch metal bands play.&lt;/font&gt;</code></pre>
<p>(You could even use elements like <code>&lt;banana&gt;</code> and <code>&lt;weasel&gt;</code>if you wanted, and then style them how you want them to look using CSS.)</p>
<p>But this is really bad. In terms of what its function is, it isn&#8217;t a heading followed by a list &#8211; it is a large line of text followed by some smaller lines of text. And that&#8217;s how it will be seen by browsers parsing the code, by search engines (such as Google) looking to pull up content in search engine results and by screen readers (used by blind people to read the Web.) Plus it is larger in terms of file size, harder to style, and more time consuming to make changes to later on.</p>
<h4 id="maintenance-flexibility">Ease of maintenance and flexibility</h4>
<p>When you separate your structure (HTML) from your presentation (CSS) and behaviour (JavaScript) and use good semantics, you will make your code a lot easier to make changes to in the future. Writing clean HTML to mark up your content and using human-readable class names means that it is a lot easier to find the parts you want to alter later on (it is hard to style just the lists in your page when you have used <code>&lt;font&gt;</code> elements to mark up all your content &#8211; how do you point your CSS to just the lists?), and having your JavaScript and CSS nicely laid out with descriptive comments added means you will find it a lot easier to understand how it all works if you come back to a site after not touching it for six months (or if someone else has to maintain your code in the future).</p>
<p>Standards also mean a lot more flexibility. For example, if you are administrating a book review site, and you are using <code>&lt;font&gt;</code> elements to specify the colour of all the quotes on your pages, and you wanted to then change the colour of all those quotes, you&#8217;d need to painstakingly pick through every page of your site and change all those instances. That wouldn&#8217;t be too bad for 5 pages of reviews, but what about when your site gains popularity and you have 50 reviews, or 500 &#8230; or 5,000? If you instead structured all your quotes correctly using <code>&lt;blockquote&gt;</code> or <code>&lt;q&gt;</code> elements and controlled all the styling from an external CSS file using a simple rule along the lines of <code>blockquote { color:red; }</code>, all you&#8217;d need to do is change that style in one place, in one file, and it will alter all of the instances, on all pages.</p>
<p>Here&#8217;s another example &#8211; a lot of sites still use HTML tables to lay out pages into various numbers of columns, or rows. If you for example had a two-column layout consisting of a main content column and a navigation menu column (you&#8217;ll see loads of these on the Web), laid out using two table cells, and you wanted to change the position of the navigation menu from the right of the screen to the left, you&#8217;d need to mess about changing the position of the content in the HTML. If you were creating the same layout, but using CSS to float the columns beside one another, all you would need to do to make the change is reverse the float values in the CSS &#8211; a much simpler change.</p>
<h4 id="accessibility">Accessibility and cross-browser compatibility</h4>
<p>In general, using standards and best practices makes it easier for people with disabilities to access your content &#8211; let&#8217;s look at a few examples:</p>
<ul>
<li>Marking up content properly using proper semantics &#8211; heading structures and paragraphs &#8211; make it far easier to navigate your content quickly when using a screen reader to read content out (blind people use these a lot.)</li>
<li>Some people suffering from mobility impairments cannot use their hands very well, or at all, so have problems using a mouse. They therefore need to use the keyboard to navigate web pages, using the tab key to move between links or form elements, or access keys, or features such as Opera&#8217;s spatial navigation.</li>
<li>People who cannot see obviously will not be able to access words inside images, so just don&#8217;t do this! If you do wish to use images to convey useful information (eg pie charts or graphs), make sure the image has meaningful alternatives available via the <code>alt</code> or <code>longdesc</code> attributes.</li>
</ul>
<p>Disabled people represent a significant web audience, and it is wrong to ignore them &#8211; how would you feel about being denied access to the web because of the language you speak, or because of the colour of your hair? I know this last example is a bit trivial, but it still serves to illustrate the point. As well as being the right thing to do, it also provides businesses with access to an extra market that they could not reach before. Check out <a href="http://equalweb.net/believes/accessibility-will-make-you-rich/">Accessible design makes money</a> for some more details about accessibility business benefits.</p>
<p><strong id="accessible_law">IT&#8217;S ALSO THE LAW</strong>. Well, it&#8217;s a bit more complicated than that, but many countries now have acts/motions passed into their law to prohibit web sites that offer a service to the general public (or members/employees, etc.) from being inaccessible to people with disabilities. It is discrimination, pure and simple. And there have been a few high-profile lawsuits against companies and other entities because of inaccessible web sites. If the &#8220;get more users&#8221; carrot doesn&#8217;t make the business donkey run faster (I paid Bruce Lawson a fiver for this metaphor), then the &#8220;avoid getting your ass sued off&#8221; carrot will&#8230;</p>
<p>See <a href="http://www.tomw.net.au/2001/bat2001f.html">Olympic failure</a> for some details about the Sydney Olympics accessibility legal case, and <a href="http://www.456bereastreet.com/archive/200710/update_on_the_target_accessibility_lawsuit/">Update on the Target accessibility lawsuit</a> for some details about the lawsuit against American store chain target for having an inaccessible web site.</p>
<p>And accessibility doesn&#8217;t end with disabled people using the web. It also describes people using many different desktop browsers to browse the Web, and alternative devices such as mobile phones, televisions and games consoles. These browsers all expect web standards, and if the code they are given is nice web standards code, then they have a higher chance of rendering your code consistently and correctly (some browsers still have bugs and other quirks which may cause problems). If you don&#8217;t bother to use good valid code, browsers have to kind of guess what you intended and fill in the blanks, and because they don&#8217;t generally guess correctly or do it consistently, you will get errors and unexpected behaviour.</p>
<p>In some parts of the world, more people use mobile phones to access the Web than desktop computers, because of cost or lifestyle choices. Using web standards means that your web sites are more likely to work on these different devices. This is not only because of pure standards support, but also because good use of standards, image optimisation, etc. can mean less processing required and smaller downloads, which means a better user experience, and less cost for those paying for downloads by the kilobyte, which is still common in some places.</p>
<h4 id="debugging">Ease of debugging</h4>
<p>If you don&#8217;t follow best practices, and don&#8217;t write good code (eg don&#8217;t close and nest HTML elements properly), you are making web browsers work harder to render your sites. This is because when a browser comes across broken code, it attempts to second guess what you were intending, and fills in the gaps for you. But browsers don&#8217;t do this consistently, and you will get unexpected behavior when trying to traverse the <abbr title="Document Object Model">DOM</abbr>, leading to further problems with your site (&#8220;traversing the DOM&#8221; is done when elements are selected, for example when a CSS style is applied to an element). Following the HTML standard properly (<a href="http://dev.opera.com/articles/view/14-choosing-the-right-doctype-for-your/">applying a doctype to your HTML pages</a>, and then validating your HTML against the rules defined in the doctype using the <a href="http://validator.w3.org">W3C validator</a>) means your code will work more consistently across browsers; validation is a powerful debugging tool.</p>
<h4 id="seo">Search engine rankings</h4>
<p>Using standards and semantics effectively makes your pages more likely to appear higher in search results from search engines such as Google, Yahoo!, etc. This is because these engines rank the importance of search terms by their appearence in heading elements, meta elements, and the frequency by which they appear. If your page is seen as being a more relevant resource concerning these search terms, then it will appear higher in search rankings; if you use no heading elements, then your &#8220;titles&#8221; will not be seen as important by search engines. Thinking carefully about <em>what</em> terms use on your pages will logically make your pages appear higher in more relevant searches!</p>
<p class="note">A few of your are probably wondering why browsers still support outdated features such as <code>&lt;font&gt;</code> elements when they are generally considered bad practice? Well, a lot of people are still using these outdated methods, and a lot of web sites still feature them. To stop supporting them now would break a lot of existing web sites! All we can do is start doing it right from now on, in the hope of seeing these outdated methods phase out gradually.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://scrunchup.com/issue-2/a-proper-web-standards-education-part-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A Proper Web Standards Education: Part 1</title>
		<link>http://scrunchup.com/issue-1/a-proper-web-standards-education/</link>
		<comments>http://scrunchup.com/issue-1/a-proper-web-standards-education/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 23:05:04 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Issue 1]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[semantics]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[webucation]]></category>

		<guid isPermaLink="false">http://scrunchup.com/wordpress/?p=3</guid>
		<description><![CDATA[Chris Mills gives an introduction to learning web standards, including core concepts and where to start.


Related posts:<ol><li><a href='http://scrunchup.com/issue-1/interview-with-zac-gordon/' rel='bookmark' title='Permanent Link: Interview with Zac Gordon'>Interview with Zac Gordon</a></li></ol>]]></description>
			<content:encoded><![CDATA[<h2 id="intro">Introduction</h2>
<p>Now is an exciting time to be getting into creating web sites &#8212; the Web touches many aspects of our lives, it allows you to have an instant global audience, the technologies involved are pretty mature for the most part, there are more educational resources available than ever before and pretty much everyone wants a web site (except my dad). Your friends will love you even more for your new-found skills, and even though it is a very competitive marketplace these days, web design and development can be a very profitable career.</p>
<p>But how do you get into it, and how do you learn what you need to know? In this article I will aim to point you in the right direction, and give you a basic framework of good key concepts to take on board and develop your knowledge of.</p>
<h2 id="web-standards">Get into web standards!</h2>
<p>Being part art and part science, web design and development has never been a very straightforward discipline &#8212; there are many good ways to build a web page, and many more bad ways (I hesitate to use <q>right</q> and <q>wrong</q> here, as the right solution for one context can easily be completely wrong in another context). There are many skills to use when coding a web page, some of which I&#8217;ll talk about below, and many technologies and techniques to consider, a lot of which are very daunting and complicated for novices to behold. You&#8217;re not going to be able to study for a week and then build the next <a href="http://www.facebook.com">Facebook</a>.</p>
<p>In spite of all this complexity and uncertainty, however, one thing remains pretty consistent amongst all good web sites &#8212; the use of <strong>client-side web standards</strong> to create the web site&#8217;s content, visual appearance, layout, and dynamic behavior. And this is where you should start off your learning path.</p>
<h3 id="client-side">Client-side web standards?</h3>
<p>By this, I am talking about code that runs in your web browser. When you surf to a web page, generally your web browser sends a request to a server, and the server sends back a web page to the client; the client-side technologies used to build that web page are not processed until the page gets to the client. Once there, they are processed, and the result spat out for you to view in your web browser.</p>
<p>Web standards are defined in recommendations &#8212; vast sprawling documents maintained by standards bodies (most notably the <a href="http://www.w3.org"><abbr title="World Wide Web Consortium">W3C</abbr></a>), which define how those technologies are supposed to be processed by web browsers, and how developers are supposed to use them to create web pages. The W3C are an organization with the aims of standardising web technologies and furthering the evolution of the Web.</p>
<p>But these documents are not the best place to go to start learning web development &#8212; they are completely exhaustive in the detail they go into, to try to eliminate as much ambiguity as possible, but this makes them rather cumbersome to digest. You are much better off reading web design tutorials such as the <a href="http://www.opera.com/wsc/">Opera Web standards curriculum</a>.</p>
<h3 id="other-technologies">What other technologies are available?</h3>
<p>There are many technologies used in the creation of web pages other than client-side web standards, but I&#8217;ll keep things simple and not talk about them much in this document. Here is a short list, just in case you come across some of these terms are are curious:</p>
<ul>
<li>Server-side technologies: These are technologies processed by the web server before the result is then sent to your web browser along with the rest of the web page. Such technologies are generally used to connect to a database, and deliver different results to you depending on what options you choose, for example when looking up train times, or buying something from an e-commerce site. Examples include <abbr title="PHP Hypertext Preprocessor">PHP</abbr>, .NET, <abbr title="Active Server Pages">ASP</abbr>, Ruby, Python, and <abbr title="Java server pages">JSP</abbr>.</li>
<li><abbr title="Portable Document Format">PDF</abbr>: This isn&#8217;t really a web technology as such, although you find it on the Web a lot. It is a format created by Adobe that is good for publishing documents you want to keep as read-only, ie you just want people to read them, and not alter them. They require a special program or plugin to view.</li>
<li>Flash: Flash is a technology delivered in the form of objects embedded in web pages (termed <q>movies</q>), which need a special plugin to view. Flash is good for delivering certain types of content, such as video, animations, and banner adverts, and can sit nicely alongside web standards, but it is terrible for creating entire sites in, and can be rather inaccessible to people with disabilities (ok, so client-side web standards content can be inaccessible too if done badly, but I&#8217;d argue that web standards are easier to make accessible than Flash).</li>
<li>Silverlight: This is kind of Microsoft&#8217;s answer to Flash &#8212; a technology created recently to provide dynamic content for web sites. It has many of the same advantages and disadvantages as Flash.</li>
</ul>
<h3 id="html-css-javascript">HTML, CSS, and JavaScript</h3>
<p>There are many standards maintained by the W3C, but the three you should start off learning are <abbr title="Hypertext Markup Language">HTML</abbr>, <abbr title="Cascading Style Sheets">CSS</abbr>, and JavaScript, in that order (they get harder to learn in this order, and it is fairly logical to learn them in this order too).</p>
<ul>
<li>HTML: This is a <a href="http://en.wikipedia.org/wiki/Markup_language">markup language</a> that you use to structure your content &#8212; it uses a system of <em>elements</em> that you wrap around various bits of content to give them meaning. View the source of this document now &#8212; Right-click (Ctrl + click on Mac) and select <q>View source</q> or similar depending on what browser you are using &#8212; and look at how the different elements define paragraphs, headings, lists, etc.</li>
<li>CSS: A rule-based language that you use to style your web page &#8212; you can for example select a specific type of element and choose to alter font size, colour, or position on the page.</li>
<li>JavaScript: A scripting language that allows you to apply dynamic behaviour to sections of your web page, for example allowing you to drag and drop sections, animate things, make things fade in and out, or change styling on the fly.</li>
</ul>
<p>In general, you should keep your content, style, and behaviour information separate in these three layers, and follow best practices as outlined in my <a href="http://www.opera.com/wsc">web standards curriculum course</a>. For example, you can add styling information directly to HTML using <code>&lt;font&gt;</code> elements and inline CSS inside <code>&lt;style&gt;</code> elements, but it&#8217;s generally better to not do so. In the next issue I&#8217;ll talk about this and other benefits of using web standards and associated best practices to create your web sites &#8212; accessibility, flexibility and ease of maintenance, search engine optimization, etc. </p>


<p>Related posts:<ol><li><a href='http://scrunchup.com/issue-1/interview-with-zac-gordon/' rel='bookmark' title='Permanent Link: Interview with Zac Gordon'>Interview with Zac Gordon</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://scrunchup.com/issue-1/a-proper-web-standards-education/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
