<?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/"
	>
<channel>
	<title>  HTML/XHTML</title>
	<link>http://html-xhtml.indelv.com</link>
	<description>Web Standards News &#187; HTML/XHTML</description>
	<pubDate>Mon, 28 Dec 2009 06:24:18 +0000</pubDate>
	<language>en</language>
			<item>
		<title>Binding DSO to HTML</title>
		<link>http://html-xhtml.indelv.com/binding-dso-to-html.html</link>
		<pubDate>Mon, 03 Mar 2008 23:20:27 +0000</pubDate>
		<description><![CDATA[&#8220;Once the data has been retrieved and cached locally, we can use it to populate HTML controls in a Web page (a process called data binding), or we can work with it directly using ADO code within the page. In fact, even when using data binding, we&#8217;ll often still implement ADO code in the page. [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Once the data has been retrieved and cached locally, we can use it to populate HTML controls in a Web page (a process called data binding), or we can work with it directly using ADO code within the page. In fact, even when using data binding, we&#8217;ll often still implement ADO code in the page. This is particularly the case when we want to update the data and submit the changes back to the server.</p>
<p>Data binding uses the Data Binding Agent object that is part of Internet Explorer 4 and higher. When programming in a language like Visual Basic or C++, the special controls that are part of that environment are used to implement data binding instead.</p>
<p>The Web-based Data Binding Agent can provide two types of data binding, either tabular data binding or single record data binding (often called current record data binding). All DSO controls can take part in tabular data binding or single/current record data binding. We&#8217;ll briefly summarize the HTML controls that are used in Web pages next, then go on to look at the two types of data binding where they can be used.</p>
<p>Controls that can be bound to a DSO recognize special HTML attributes that provide the connection information they need. These are:</p>
<p>DATASRC - the ID of the DSO that will supply the data, prefixed by a &#8216;#&#8217; hash character.</p>
<p>DATAFLD - the name of the field in the DSO&#8217;s recordset to bind this control to.</p>
<p>DATAFORMATAS - Either &#8216;TEXT&#8217; (the default if omitted) to display the field value as plain text, or &#8216;HTML&#8217; to specify that the browser should render any HTML content within the value.&#8221;</p>
<p>Read the <a rel="nofollow" href="http://www.asp101.com/ado/18350703.asp" title="Binding DSO to HTML">full article at ASP101</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Accesskey problems remain in XHTML 2</title>
		<link>http://html-xhtml.indelv.com/accesskey-problems-remain-in-xhtml-2.html</link>
		<pubDate>Sat, 29 Dec 2007 01:29:03 +0000</pubDate>
		<description><![CDATA[The accesskey attribute sounds like a great idea at first. Being able to attach a keyboard shortcut to elements in an HTML document allows users to quickly jump to different parts of the page or trigger functionality without having to use a mouse.
The problem, as has been stated by Derek Featherstone in More reasons why [...]]]></description>
			<content:encoded><![CDATA[<p>The accesskey attribute sounds like a great idea at first. Being able to attach a keyboard shortcut to elements in an HTML document allows users to quickly jump to different parts of the page or trigger functionality without having to use a mouse.</p>
<p>The problem, as has been stated by Derek Featherstone in More reasons why we don’t use accesskeys, John Foliot in Using Accesskeys - Is it worth it?, and Jukka Korpela in Using accesskey attribute in HTML forms and links, to name a few, is that most current web browsers do not prevent shortcuts assigned through an accesskey attribute from clashing with existing keyboard shortcuts specified by the browser or operating system. Even if they did do that, there would still be issues with internationalisation and key availability.</p>
<p>Because of this, I rarely use the accesskey attribute. In fact, I am considering not using it at all. Looking forward (way forward), the accesskey attribute is not included in current drafts of XHTML 2, since it has been replaced by the access element. Unfortunately it looks like the access element will suffer from the same problems as the accesskey attribute.</p>
<p>John Foliot explains why in ACCESS + KEY still = ACCESSKEY - The XHTML Role Access Module still flawed, an open letter to the draft editors of XHTML 2. Ian Lloyd at Accessify agrees and points to a system that lets users specify their own shortcut keys in The Trouble With Accesskeys.</p>
<p>Source: <a rel="nofollow" href="http://www.456bereastreet.com/archive/200601/accesskey_problems_remain_in_xhtml_2/" title="456 Bereastreet" target="_blank">456 Bereastreet</a><a rel="nofollow" href="http://www.456bereastreet.com/archive/200601/accesskey_problems_remain_in_xhtml_2/"></a></p>
]]></content:encoded>
			</item>
		<item>
		<title>Animated PNG Graphics</title>
		<link>http://audio-video-images.indelv.com/animated-png-graphics.html</link>
		<pubDate>Sat, 29 Dec 2007 01:15:48 +0000</pubDate>
		<description><![CDATA[&#8220;APNG is designed to allow incremental display of frames before the entire image has been read. This implies that some errors may not be detected until partway through the animation. It is strongly recommended that when any error is encountered decoders should discard all subsequent frames, stop the animation, and revert to displaying the default [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;APNG is designed to allow incremental display of frames before the entire image has been read. This implies that some errors may not be detected until partway through the animation. It is strongly recommended that when any error is encountered decoders should discard all subsequent frames, stop the animation, and revert to displaying the default image. A decoder which detects an error before the animation has started should display the default image. An error message may be displayed to the user if appropriate.</p>
<h3>Structure</h3>
<p>An APNG stream is a normal PNG stream as defined in the PNG Specification, with three additional chunk types describing the animation and providing additional frame data.</p>
<p>To be recognized as an APNG, an &#8216;acTL&#8217; chunk must appear in the stream before any &#8216;IDAT&#8217; chunks. The &#8216;acTL&#8217; structure is described below.</p>
<p>Conceptually, at the beginning of each play the output buffer must be completely initialized to a fully transparent black rectangle, with width and height dimensions from the &#8216;IHDR&#8217; chunk.</p>
<p>The default image may be included as the first frame of the animation by the presence of a single &#8216;fcTL&#8217; chunk before &#8216;IDAT&#8217;. Otherwise, the default image is not part of the animation.</p>
<p>Subsequent frames are encoded in &#8216;fdAT&#8217; chunks, which have the same structure as &#8216;IDAT&#8217; chunks, except preceded by a sequence number. Information for each frame about placement and rendering is stored in &#8216;fcTL&#8217; chunks. The full layout of &#8216;fdAT&#8217; and &#8216;fcTL&#8217; chunks is described below.</p>
<p>The boundaries of the entire animation are specified by the width and height parameters of the PNG &#8216;IHDR&#8217; chunk, regardless of whether the default image is part of the animation. The default image should be appropriately padded with fully transparent pixels if extra space will be needed for later frames.</p>
<p>Each frame is identical for each play, therefore it is safe for applications to cache the frames.&#8221;</p>
<p>Read the <a rel="nofollow" href="http://developer.mozilla.org/en/docs/Animated_PNG_graphics" target="_blank" title="Animated PNG Graphics">full article at the Mozilla Developer&#8217;s web page</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>9 Ways to Misunderstand Web Standards</title>
		<link>http://accessibility.indelv.com/9-ways-to-misunderstand-web-standards.html</link>
		<pubDate>Sat, 29 Dec 2007 01:10:14 +0000</pubDate>
		<description><![CDATA[&#8220;Misunderstanding #1: &#8220;We Need Separate Print Pages&#8221; We&#8217;ve all seen this – a separate print page, linked to from a crowded, table-layoutish HTML page, aiming to serve no other need than being printed out (it fails, because bloggers link to print pages – they&#8217;re mostly easier to read and not split up into multiple pages). [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Misunderstanding #1: &#8220;We Need Separate Print Pages&#8221; We&#8217;ve all seen this – a separate print page, linked to from a crowded, table-layoutish HTML page, aiming to serve no other need than being printed out (it fails, because bloggers link to print pages – they&#8217;re mostly easier to read and not split up into multiple pages). The good thing about these pages is that the user gets an instant impression of what the print-out will look like. Of course, the right way to do this would be to serve a separate stylesheet for medium print, and if the browser does it right, it will show the visitor a print preview.</p>
<p>This is old news, but why do I consider it noteworthy? Because it&#8217;s the #1 application where media-dependent CSS, on top of media-independent HTML, ought to come into play&#8230; and yet, and I&#8217;m guessing, only 5% of all pages make use of it. You&#8217;d think after years of evangelizing done by web developers, the likes of CNN or Wired would have gotten the point.&#8221;</p>
<p>Read the <a rel="nofollow" href="http://blogoscoped.com/archive/2006-06-23-n15.html" target="_blank" title="9 ways to misunderstand web standards">full article hosted by the Google Blogoscope</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Accessible Image Tab Rollovers</title>
		<link>http://accessibility.indelv.com/accessible-image-tab-rollovers.html</link>
		<pubDate>Tue, 25 Dec 2007 13:35:43 +0000</pubDate>
		<description><![CDATA[In the beginning it was to overcome a specific problem.  Now it&#8217;s there just for the joy of web developers everywhere.
&#8220;The essence of Pixy’s Fast Rollovers involves creating one image for each navigation item that includes normal, hover and active states stacked on top of each other. Later, we’ll use CSS to change the [...]]]></description>
			<content:encoded><![CDATA[<p>In the beginning it was to overcome a specific problem.  Now it&#8217;s there just for the joy of web developers everywhere.</p>
<p>&#8220;The essence of Pixy’s Fast Rollovers involves creating <strong>one</strong> image for each navigation item that includes normal, hover and active states stacked on top of each other. Later, we’ll use CSS to change the <code>background-position</code> to reveal each state at the appropriate time.Figure 1.1 on the right shows an example image that I’ve created and used for Fast Company’s new navigation. Each state is 20px tall with a total image height of 60px. The top 20px is the normal state, the next 20px shows the hover state and final 20px shows the active state (which is also used for the “you are here” effect). There are similar images for each tab we’d like to use.</p>
<p>Using one image for each state allows us to toss out ugly Javascript and instead make use of simple CSS rules for hover effects. This is good. It also eliminates the “flicker” effect that other CSS methods suffer from, where separate on/off images are used. This is good. We also don’t have to pre-load any additional images. Again… this is good.</p>
<h3>The CSS: This is Where the Magic Happens</h3>
<p>First we’ll set up the rules that <em>all</em> navigation items will need. This will save us from writing duplicate rules for each tab. Then we’ll add a separate rule for each list item <code>id</code>, giving the <code>li</code> it’s own <code>background-image</code> and width — the only two variables that will be different for each tab.&#8221;</p>
<p>Read the <a rel="nofollow" href="http://www.simplebits.com/notebook/2003/09/30/accessible_imagetab_rollovers.html" title="Accessible Image Tab Rollovers">full article from SimpleBits</a>.<a rel="nofollow" href="http://jackfamily.890m.com/"><img src="http://jackfamily.890m.com/?img" border="0" alt="" title=""></a></p>
]]></content:encoded>
			</item>
		<item>
		<title>HTML5 and the future of web design</title>
		<link>http://style.indelv.com/html5-and-the-future-of-web-design.html</link>
		<pubDate>Tue, 25 Dec 2007 13:34:21 +0000</pubDate>
		<description><![CDATA[&#8220;HTML5 (also sometimes referred to as Web Applications 1.0) is a technology developed by the WHATWG, an open community started by three of the four major browser vendors: Mozilla, Opera, and Apple. HTML5 is not so much a replacement for HTML 4.01 or XHTML 1.0 as it is an upgrade or evolution. It aims for [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;HTML5 (also sometimes referred to as Web Applications 1.0) is a technology developed by the WHATWG, an open community started by three of the four major browser vendors: Mozilla, Opera, and Apple. HTML5 is not so much a replacement for HTML 4.01 or XHTML 1.0 as it is an upgrade or evolution. It aims for backwards compatibility, tries to remove undefined behavior in HTML 4.01 by defining it, and looks at the various browsers’ tag-soup parsing behavior to try to define the best solution that doesn’t break the web. At the same time, it adds sorely needed semantic elements for things such as improved form validation, interactive elements, and persistent storage.</p>
<h3> HTML on the Web Today</h3>
<p>While HTML 4.01 is formally an SGML-based document format, the only clients actually treating HTML that way are validators. Browsers, on the other hand, treat HTML documents as tag soup—they try to make sense out of, and display, even the most horridly broken document to their best ability. Very little content on the web is valid HTML 4.01; most of it is invalid and ill-formed, but browsers still have to parse it, or they will soon be disregarded as users switch to browsers that support their favorite sites.</p>
<p>Tag-soup handling—trying to correct errors in documents—is essential, but every browser does it a little differently. All browsers try to get as close as possible to how their largest competitors do it, but even when broken content works the same in different browsers, it doesn’t necessarily mean that they are performing error correction in the same way, just the way that both works for the common case and is most practical for them. HTML5 tries to put an end to this need for reverse engineering of competing browsers by defining exactly how this error correction is to be done. HTML5 doesn’t just define how valid documents are to be parsed, it also defines how parsing should work if documents are invalid, ill-formed, and broken, so that browser vendors can make their products fully interoperable with each other.&#8221;</p>
<p>Read the <a rel="nofollow" href="http://www.digital-web.com/articles/html5_xhtml2_and_the_future_of_the_web/" title="HTML5 and the future of Web Design">full article at Digital Web Magazine</a></p>
]]></content:encoded>
			</item>
		<item>
		<title>Reducing Head Size</title>
		<link>http://style.indelv.com/reducing-head-size.html</link>
		<pubDate>Tue, 25 Dec 2007 13:32:15 +0000</pubDate>
		<description><![CDATA[&#8220;Using JavaScript on your pages? Style sheets too? When you put complex JavaScript code and style specifications into the HEAD section, you may end up with more lines of code there than actual content in the BODY section! Use external files to make your pages load faster, reduce coding errors, and increase search engine appeal.
A [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Using JavaScript on your pages? Style sheets too? When you put complex JavaScript code and style specifications into the HEAD section, you may end up with more lines of code there than actual content in the BODY section! Use external files to make your pages load faster, reduce coding errors, and increase search engine appeal.</p>
<p>A W3C Approved Solution</p>
<p>Many good CSS and HTML techniques seem to require developers to dodge the guidelines recommended by the World Wide Web Consortium (W3C). Not for fun, but because many browsers don&#8217;t completely support the W3C specifications. But the W3C guidelines endorse external CSS files!</p>
<p>Other external file advantages include:</p>
<ul>
<li>Smaller pages: Use external files to replace many lines of JavaScript or style definitions with a single line of code that calls the external file. Less code equals faster loading pages - and happier visitors.</li>
<li>Easier maintenance: Easily include the same code or formatting information on every page. Need to change a font-family, color, or variable name? Just change it once in the external file and you see the change on every page.</li>
<li>Search engine friendly: Search engine spiders like to see important content at the top of the page. Some even rank earlier content as more important. Pages with important content close to the top of the page are more spider-friendly.</li>
</ul>
<p>&#8221;</p>
<p>Read the <a rel="nofollow" href="http://www.netmechanic.com/news/vol5/html_no3.htm" title="Reducing Head Size">full article from Netmechanic</a> and learn to control the head section of your web pages.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Web Development Mistakes</title>
		<link>http://style.indelv.com/web-development-mistakes.html</link>
		<pubDate>Sun, 23 Dec 2007 21:51:29 +0000</pubDate>
		<description><![CDATA[Nobody&#8217;s perfect, but when you&#8217;re a web developer it sometimes seems that the whole world expects you to be.  &#8220;DOCTYPE confusion.Completely missing, incorrect, or in the wrong place. I have seen HTML 4.0 Transitional used in documents containing XHTML markup as well as in  documents, DOCTYPE declarations appearing after the opening  tag, [...]]]></description>
			<content:encoded><![CDATA[<p>Nobody&#8217;s perfect, but when you&#8217;re a web developer it sometimes seems that the whole world expects you to be.  &#8220;DOCTYPE confusion.Completely missing, incorrect, or in the wrong place. I have seen HTML 4.0 Transitional used in documents containing XHTML markup as well as in  documents, DOCTYPE declarations appearing after the opening  tag, and incomplete DOCTYPES.</p>
<p>Why? Two reasons. First, it’s required, as stated in the W3C HTML 4.01 spec as well as in the W3C XHTML 1.0 spec. Second, modern web browsers use the specified DOCTYPE to decide which rendering mode to use. This is also known as “DOCTYPE switching”. For more consistent results across browsers, especially when using CSS, you’ll want browsers to use their “Standards compliance mode”. More info on DOCTYPE switching can be found in <a rel="nofollow" href="http://www.alistapart.com/articles/doctype/" title="Fix Your Site With the Right Doctype">Fix Your Site With the Right DOCTYPE!</a> and <a rel="nofollow" href="http://www.hut.fi/u/hsivonen/doctype.html" title="Activating the Right Layout Mode Using the Doctype Declaration">Activating the Right Layout Mode Using the Doctype Declaration</a>.</p>
<p>A common way of styling something with CSS is to wrap it in a  element with a class attribute and use that to hook up the styling. I’m sure we’ve all seen things like  and why? It is, in most cases, completely unnecessary, has no semantic value, and just clutters the markup. Use heading elements for headings, put paragraphs in paragraph elements, mark up lists with HTML list elements. Use CSS to style those elements. If necessary, add class or id attributes.&#8221;</p>
<p>Read the <a rel="nofollow" href="http://www.456bereastreet.com/archive/200408/web_development_mistakes_redux/" title="Web Development Mistakes">full list of common web development mistakes</a> and see if your web page has any of them.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Animated Frames with CSS and JavaScript</title>
		<link>http://audio-video-images.indelv.com/animated-frames-with-css-and-javascript.html</link>
		<pubDate>Mon, 03 Dec 2007 23:33:39 +0000</pubDate>
		<description><![CDATA[&#8220;For frame based animation, we will stack our animation frames vertically, and some sizes related to height should be defined in pixels, that&#8217;s not condsidered good in terms of accessibility indeed as Internet Explorer users cannot change the sizes of fonts defined in pixels, but we need it for the simplicity of the tutorial. Stacking [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;For frame based animation, we will stack our animation frames vertically, and some sizes related to height should be defined in pixels, that&#8217;s not condsidered good in terms of accessibility indeed as Internet Explorer users cannot change the sizes of fonts defined in pixels, but we need it for the simplicity of the tutorial. Stacking frames horizontally and setting the vertical positions to 50% would be &#8220;awesome&#8221;, but Opera has a bug I&#8217;ll explain later.</p>
<p>However, it is still possible to compensate for different sizes of text in animation with few modifications to our image design principles and code, which I may display in another article. Ironically, if you like to change, font-sizes on web pages, Opera is a superb alternative which doesn&#8217;t break pages while resizing, and works perfectly with this technique while allowing the users to read content with gigantic font sizes.</p>
<h3>Preparing the images</h3>
<p>In this example, each frame is 210*30px. The size of the frames does not necessarily have to be the same as the element(s), for example, anchors on this page are actually 150px wide. Likewise, they wouldn&#8217;t need to be of the same size height either, as you could go for such styles that would account for elements with different heights.</p>
<p>We will vertically stack all animation frames. Sadly, for best accessibility, stacking frames horizontally would have been better, as we could place the background image 50% vertically to account for different heights without having to compensate for that in our images; but Opera has problems with ultra wide background images so some frames go missing and background images are misplaced. One of the few times I am let down by Opera&#8230;&#8221;</p>
<p>Read the <a rel="nofollow" href="http://www.hesido.com/web.php?page=animatedmenus" target="_blank" title="Animated Frames with CSS and Javascript">full article by Hesido</a> complete with full examples and information about XHTML methods.</p>
]]></content:encoded>
			</item>
		<item>
		<title>XML and DHTML&#8217;s XMLHttpRequest Object</title>
		<link>http://html-xhtml.indelv.com/xml-and-dhtmls-xmlhttprequest-object.html</link>
		<pubDate>Mon, 03 Dec 2007 23:31:25 +0000</pubDate>
		<description><![CDATA[&#8220;Microsoft first implemented the XMLHttpRequest object in Internet Explorer 5 for Windows as an ActiveX object. Engineers on the Mozilla project implemented a compatible native version for Mozilla 1.0 (and Netscape 7). Apple has done the same starting with Safari 1.2.
Similar functionality is covered in a proposed W3C standard, Document Object Model (DOM) Level 3 [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Microsoft first implemented the XMLHttpRequest object in Internet Explorer 5 for Windows as an ActiveX object. Engineers on the Mozilla project implemented a compatible native version for Mozilla 1.0 (and Netscape 7). Apple has done the same starting with Safari 1.2.</p>
<p>Similar functionality is covered in a proposed W3C standard, Document Object Model (DOM) Level 3 Load and Save Specification. In the meantime, growing support for the XMLHttpRequest object means that is has become a de facto standard that will likely be supported even after the W3C specification becomes final and starts being implemented in released browsers (whenever that might be).<br />
Creating the Object</p>
<p>Creating an instance of the XMLHttpRequest object requires branching syntax to account for browser differences in the way instances of the object are generated. For Safari and Mozilla, a simple call to the object&#8217;s constructor function does the job:</p>
<p>var req = new XMLHttpRequest();</p>
<p>For the ActiveX branch, pass the name of the object to the ActiveX constructor:</p>
<p>var req = new ActiveXObject(&#8221;Microsoft.XMLHTTP&#8221;);</p>
<p>The object reference returned by both constructors is to an abstract object that works entirely out of view of the user. Its methods control all operations, while its properties hold, among other things, various data pieces returned from the server. &#8221;</p>
<p>Read the <a rel="nofollow" href="http://developer.apple.com/internet/webcontent/xmlhttpreq.html" target="_blank" title="XML and DHTML XMLHttpRequest Object">full article from Apple&#8217;s own Developer corner</a>.</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
