<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Text rotation for all</title>
	<atom:link href="http://ajaxian.com/archives/text-rotation-for-all/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/text-rotation-for-all</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 17 May 2012 07:43:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: kadu</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274931</link>
		<dc:creator>kadu</dc:creator>
		<pubDate>Thu, 06 Aug 2009 13:44:16 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274931</guid>
		<description>Hi I have used writing-mode to vertically display text in jsp. When i export this jsp to excel, for some reason the same text does not get displayed vertically. I have included the css code in  in the excel jsp. Any solution ?  Tthanks in advance.</description>
		<content:encoded><![CDATA[<p>Hi I have used writing-mode to vertically display text in jsp. When i export this jsp to excel, for some reason the same text does not get displayed vertically. I have included the css code in  in the excel jsp. Any solution ?  Tthanks in advance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BertrandLeRoy</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274842</link>
		<dc:creator>BertrandLeRoy</dc:creator>
		<pubDate>Sat, 01 Aug 2009 06:34:15 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274842</guid>
		<description>So for that specific example, why not the writing mode that has been supported in IE since version 5.5? Sure, it won&#039;t allow for arbitrary angles but 90 degree increments cover many scenarios. Also, I thought the direct-X transforms were dropped from recent IE versions?</description>
		<content:encoded><![CDATA[<p>So for that specific example, why not the writing mode that has been supported in IE since version 5.5? Sure, it won&#8217;t allow for arbitrary angles but 90 degree increments cover many scenarios. Also, I thought the direct-X transforms were dropped from recent IE versions?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Darkimmortal</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274841</link>
		<dc:creator>Darkimmortal</dc:creator>
		<pubDate>Sat, 01 Aug 2009 01:52:48 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274841</guid>
		<description>Microsoft just won the game. Again.</description>
		<content:encoded><![CDATA[<p>Microsoft just won the game. Again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: olliekav</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274821</link>
		<dc:creator>olliekav</dc:creator>
		<pubDate>Fri, 31 Jul 2009 07:39:32 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274821</guid>
		<description>The one downside of this in IE as mentioned in Jonathan&#039;s post is that IE removes cleartype from the rendering. Meaning you get some horrible text/png rendering once rotated. This is fine if your are not using transparencies as a solid background color applied to the element seems to fix it. But for any opacity/rotation work using transparencies you have to be really careful with your font selection.</description>
		<content:encoded><![CDATA[<p>The one downside of this in IE as mentioned in Jonathan&#8217;s post is that IE removes cleartype from the rendering. Meaning you get some horrible text/png rendering once rotated. This is fine if your are not using transparencies as a solid background color applied to the element seems to fix it. But for any opacity/rotation work using transparencies you have to be really careful with your font selection.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TNO</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274812</link>
		<dc:creator>TNO</dc:creator>
		<pubDate>Thu, 30 Jul 2009 19:10:21 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274812</guid>
		<description>@eyelidlessness:
You&#039;ve apparently misunderstood the comment. I was primarily responding to this comment earlier by fzammetti:
&lt;b&gt;&quot;You’re right, “3? is pretty horrid API design&quot;&lt;/b&gt;

I should have quoted. But anyway, to rephrase, the API itself is hardly horrid if it was used in a non-embedded context with enum support. ex:

enum Direction {
    TOP:0,
    RIGHT:1,
    BOTTOM:2,
    LEFT:3
}

It&#039;s of course a simple academic observation.</description>
		<content:encoded><![CDATA[<p>@eyelidlessness:<br />
You&#8217;ve apparently misunderstood the comment. I was primarily responding to this comment earlier by fzammetti:<br />
<b>&#8220;You’re right, “3? is pretty horrid API design&#8221;</b></p>
<p>I should have quoted. But anyway, to rephrase, the API itself is hardly horrid if it was used in a non-embedded context with enum support. ex:</p>
<p>enum Direction {<br />
    TOP:0,<br />
    RIGHT:1,<br />
    BOTTOM:2,<br />
    LEFT:3<br />
}</p>
<p>It&#8217;s of course a simple academic observation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eyelidlessness</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274808</link>
		<dc:creator>eyelidlessness</dc:creator>
		<pubDate>Thu, 30 Jul 2009 18:07:18 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274808</guid>
		<description>WillPeavy,

I think if we&#039;re going to add maths to the CSS standard, it should be within a function (eg expression()), if only to avoid people assigning mathematical values without understanding the consequences.

TNO,

It was clearly designed as the DirectX API, as it calls DirectX functionality against the DirectX API structure.</description>
		<content:encoded><![CDATA[<p>WillPeavy,</p>
<p>I think if we&#8217;re going to add maths to the CSS standard, it should be within a function (eg expression()), if only to avoid people assigning mathematical values without understanding the consequences.</p>
<p>TNO,</p>
<p>It was clearly designed as the DirectX API, as it calls DirectX functionality against the DirectX API structure.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TNO</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274806</link>
		<dc:creator>TNO</dc:creator>
		<pubDate>Thu, 30 Jul 2009 17:43:51 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274806</guid>
		<description>In regards to the “rotation=3? argument, The API was probably originally  designed for a language that supported the use of enum.</description>
		<content:encoded><![CDATA[<p>In regards to the “rotation=3? argument, The API was probably originally  designed for a language that supported the use of enum.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WillPeavy</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274786</link>
		<dc:creator>WillPeavy</dc:creator>
		<pubDate>Thu, 30 Jul 2009 14:27:22 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274786</guid>
		<description>@Martijn - ha! Nice.</description>
		<content:encoded><![CDATA[<p>@Martijn &#8211; ha! Nice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WillPeavy</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274785</link>
		<dc:creator>WillPeavy</dc:creator>
		<pubDate>Thu, 30 Jul 2009 14:26:43 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274785</guid>
		<description>@eyelidlessness - I see what you&#039;re saying. I may be biased because I learned how to build webpages on IE specific expressions, so its syntax became natural looking by association. I think everyone can agree, though, that this syntax &quot;transform:rotate(-90deg)&quot; is nicer and easier.

I think something like this would be good &quot;width:50% - 16px;&quot; - it would be more accurate than trying to accomplish the same with &quot;width:48%;&quot; , or playing with margins and relative positioning to fit something in.</description>
		<content:encoded><![CDATA[<p>@eyelidlessness &#8211; I see what you&#8217;re saying. I may be biased because I learned how to build webpages on IE specific expressions, so its syntax became natural looking by association. I think everyone can agree, though, that this syntax &#8220;transform:rotate(-90deg)&#8221; is nicer and easier.</p>
<p>I think something like this would be good &#8220;width:50% &#8211; 16px;&#8221; &#8211; it would be more accurate than trying to accomplish the same with &#8220;width:48%;&#8221; , or playing with margins and relative positioning to fit something in.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MartijnHoutman</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274771</link>
		<dc:creator>MartijnHoutman</dc:creator>
		<pubDate>Thu, 30 Jul 2009 08:46:33 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274771</guid>
		<description>Oh, forgot to mention the filter to use:

&lt;code&gt;
filter:progid:DXImageTransform.Microsoft.Matrix(sProperties)
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Oh, forgot to mention the filter to use:</p>
<p><code><br />
filter:progid:DXImageTransform.Microsoft.Matrix(sProperties)<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MartijnHoutman</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274770</link>
		<dc:creator>MartijnHoutman</dc:creator>
		<pubDate>Thu, 30 Jul 2009 08:44:07 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274770</guid>
		<description>Well, IE does support arbitrary rotation angles by using a matrix:

&lt;code&gt;

                
var deg2radians = Math.PI * 2 / 360;
&lt;!-- fnSetRotation function --&gt; 
//oObj input requires an matrix filter applied. 
//deg input defines the requested angle of rotation.
{    rad = deg * deg2radians ;
    costheta = Math.cos(rad);
    sintheta = Math.sin(rad);

    oObj.filters.item(0).M11 = costheta;
    oObj.filters.item(0).M12 = -sintheta;
    oObj.filters.item(0).M21 = sintheta;
    oObj.filters.item(0).M22 = costheta;
}

&lt;/code&gt;

Not the best-looking API around, but ah.</description>
		<content:encoded><![CDATA[<p>Well, IE does support arbitrary rotation angles by using a matrix:</p>
<p><code></p>
<p>var deg2radians = Math.PI * 2 / 360;<br />
<!-- fnSetRotation function --><br />
//oObj input requires an matrix filter applied.<br />
//deg input defines the requested angle of rotation.<br />
{    rad = deg * deg2radians ;<br />
    costheta = Math.cos(rad);<br />
    sintheta = Math.sin(rad);</p>
<p>    oObj.filters.item(0).M11 = costheta;<br />
    oObj.filters.item(0).M12 = -sintheta;<br />
    oObj.filters.item(0).M21 = sintheta;<br />
    oObj.filters.item(0).M22 = costheta;<br />
}</p>
<p></code></p>
<p>Not the best-looking API around, but ah.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nosredna</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274763</link>
		<dc:creator>Nosredna</dc:creator>
		<pubDate>Wed, 29 Jul 2009 22:06:16 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274763</guid>
		<description>Since Microsoft doesn&#039;t even have to think about Macintosh or Linux when it makes IE, we really can&#039;t expect a very board view out of the. I&#039;m convinced it will eventually hurt them. It already has, given their browser share market drop.</description>
		<content:encoded><![CDATA[<p>Since Microsoft doesn&#8217;t even have to think about Macintosh or Linux when it makes IE, we really can&#8217;t expect a very board view out of the. I&#8217;m convinced it will eventually hurt them. It already has, given their browser share market drop.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eyelidlessness</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274762</link>
		<dc:creator>eyelidlessness</dc:creator>
		<pubDate>Wed, 29 Jul 2009 21:32:48 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274762</guid>
		<description>WillPeavy,

I&#039;m not actually faulting Microsoft their expressions implementation. I&#039;m saying that it&#039;s a good idea, and deserves a good standard and good implementations. And I provided some thoughts on how that might look.

I&#039;m also, again, not saying that the rotation syntax is hard to understand. I&#039;m saying it&#039;s poor syntax and a poor API. And that the syntax was created so long ago isn&#039;t really an excuse, as it was translated to IE 8&#039;s supposedly &quot;correct&quot; CSS 2.1 implementation.</description>
		<content:encoded><![CDATA[<p>WillPeavy,</p>
<p>I&#8217;m not actually faulting Microsoft their expressions implementation. I&#8217;m saying that it&#8217;s a good idea, and deserves a good standard and good implementations. And I provided some thoughts on how that might look.</p>
<p>I&#8217;m also, again, not saying that the rotation syntax is hard to understand. I&#8217;m saying it&#8217;s poor syntax and a poor API. And that the syntax was created so long ago isn&#8217;t really an excuse, as it was translated to IE 8&#8242;s supposedly &#8220;correct&#8221; CSS 2.1 implementation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WillPeavy</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274761</link>
		<dc:creator>WillPeavy</dc:creator>
		<pubDate>Wed, 29 Jul 2009 20:57:59 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274761</guid>
		<description>@eyelidlessness - As far as the DirectX goes - I think everyone (including the people at MS) agreed, a long time ago, that the way their CSS expressions were implemented is bad. That&#039;s why MS deprecated it.

As far as the &quot;rotation=3&quot; goes - I understand some people don&#039;t like the syntax. That&#039;s fine with me. The syntax was created in a different era when essentially you had a Netscape standard and an IE standard. But for me (this is me personally, I can&#039;t say how anyone else thinks), it was never difficult to use or understand that rotation=1 rotates 90deg, rotation=2 rotates 180deg, rotation=3 rotates 270deg.</description>
		<content:encoded><![CDATA[<p>@eyelidlessness &#8211; As far as the DirectX goes &#8211; I think everyone (including the people at MS) agreed, a long time ago, that the way their CSS expressions were implemented is bad. That&#8217;s why MS deprecated it.</p>
<p>As far as the &#8220;rotation=3&#8243; goes &#8211; I understand some people don&#8217;t like the syntax. That&#8217;s fine with me. The syntax was created in a different era when essentially you had a Netscape standard and an IE standard. But for me (this is me personally, I can&#8217;t say how anyone else thinks), it was never difficult to use or understand that rotation=1 rotates 90deg, rotation=2 rotates 180deg, rotation=3 rotates 270deg.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eyelidlessness</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274760</link>
		<dc:creator>eyelidlessness</dc:creator>
		<pubDate>Wed, 29 Jul 2009 20:56:16 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274760</guid>
		<description>Oh and, I think CSS expressions is still a good idea, but should probably be proposed as a whole new CSS module so issues with it can be ironed out. I think it should be implemented, but with CSS-consistent syntax, without reliance on JS, and with strict rules for redraw/reflow in order to ensure good performance. For example, syntax would be like

width: expression(100% - 16px);

And redraw/reflow would only occur when the container&#039;s width changes (as is the case with width: 100%). As far as internal implementation, this could be accomplished by maintaining calculation adjustments (eg -16) to apply when the variable measurement is calculated, eg instead of [pseudocode]

element. positionedParentNode.onwidthchange = function() {
element.currentStyle.width = 1 * this.currentStyle.width;
};

use [again, pseudocode]

element.positionedParentNode.onwidthchange = function() {
element.currentStyle.width = (1 * this.currentStyle.width) + element.__expression.width;
};

where element.__expression.width would represent the static width expression adjustments (-16).

With these considerations, CSS expressions could still be tenable, and would be extremely useful.</description>
		<content:encoded><![CDATA[<p>Oh and, I think CSS expressions is still a good idea, but should probably be proposed as a whole new CSS module so issues with it can be ironed out. I think it should be implemented, but with CSS-consistent syntax, without reliance on JS, and with strict rules for redraw/reflow in order to ensure good performance. For example, syntax would be like</p>
<p>width: expression(100% &#8211; 16px);</p>
<p>And redraw/reflow would only occur when the container&#8217;s width changes (as is the case with width: 100%). As far as internal implementation, this could be accomplished by maintaining calculation adjustments (eg -16) to apply when the variable measurement is calculated, eg instead of [pseudocode]</p>
<p>element. positionedParentNode.onwidthchange = function() {<br />
element.currentStyle.width = 1 * this.currentStyle.width;<br />
};</p>
<p>use [again, pseudocode]</p>
<p>element.positionedParentNode.onwidthchange = function() {<br />
element.currentStyle.width = (1 * this.currentStyle.width) + element.__expression.width;<br />
};</p>
<p>where element.__expression.width would represent the static width expression adjustments (-16).</p>
<p>With these considerations, CSS expressions could still be tenable, and would be extremely useful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eyelidlessness</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274758</link>
		<dc:creator>eyelidlessness</dc:creator>
		<pubDate>Wed, 29 Jul 2009 20:41:53 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274758</guid>
		<description>The problem isn&#039;t that &quot;rotation=3&quot; is hard to write, it&#039;s that progid:DXImageTransform.Microsoft.BasicImage references the proprietary DirectX API, and that &quot;rotation=3&quot; disregards CSS conventions both descriptively (3 does not actually describe the degrees of rotation) and syntactically (=).</description>
		<content:encoded><![CDATA[<p>The problem isn&#8217;t that &#8220;rotation=3&#8243; is hard to write, it&#8217;s that progid:DXImageTransform.Microsoft.BasicImage references the proprietary DirectX API, and that &#8220;rotation=3&#8243; disregards CSS conventions both descriptively (3 does not actually describe the degrees of rotation) and syntactically (=).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WillPeavy</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274757</link>
		<dc:creator>WillPeavy</dc:creator>
		<pubDate>Wed, 29 Jul 2009 20:29:42 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274757</guid>
		<description>Nobody in their right mind would make extensive use of them now, but back in the day (somewhere around 10 years ago), CSS expressions were actually a pretty good innovation. 

Personally, I don&#039;t think &quot;rotation=3&quot; was all that difficult to write. But, at least, I think most everyone can agree the modern proprietary syntax is easier (transform: rotate...)

Also, you can use &#039;-ms-filter:&#039; to make the text rotation work in IE8 in standards mode</description>
		<content:encoded><![CDATA[<p>Nobody in their right mind would make extensive use of them now, but back in the day (somewhere around 10 years ago), CSS expressions were actually a pretty good innovation. </p>
<p>Personally, I don&#8217;t think &#8220;rotation=3&#8243; was all that difficult to write. But, at least, I think most everyone can agree the modern proprietary syntax is easier (transform: rotate&#8230;)</p>
<p>Also, you can use &#8216;-ms-filter:&#8217; to make the text rotation work in IE8 in standards mode</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eyelidlessness</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274756</link>
		<dc:creator>eyelidlessness</dc:creator>
		<pubDate>Wed, 29 Jul 2009 20:20:25 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274756</guid>
		<description>&quot;Because that is, unfortunately, the way it has to be. Standards bodies move slooooooowly, and if vendors waited for finalized specs to implement we’d have less capability available to use as developers.&quot;

You didn&#039;t answer my question. Why would a developer want to &lt;strong&gt;&lt;em&gt;differentiate&lt;/em&gt;&lt;/strong&gt; between browsers? I&#039;m not asking why a developer would want &lt;em&gt;extensions&lt;/em&gt; (I think we agree they are a net positive), I&#039;m asking why a developer would want to treat one browser differently than another.

&quot;Agreed… but we’re not here talking about different results, we’re talking about different implementations of the same non-standard thing.&quot;

Er, you were promoting differentiating browsers; different results is a necessary conclusion of that.

&quot;I’m sure you aren’t arguing that MS should get together with Mozilla, Apple and Opera and agree on an implementation independent of standards bodies, are you? That would be a nice world to live in, but not a realistic one :)&quot;

No, I&#039;m arguing that Microsoft should take the same approach Apple and Mozilla currently take: implement extensions that are consistent with existing standard APIs, and then push for standardization of those extensions. I spelled it out in my last comment. Microsoft does neither.

&quot;This is where I disagree and where I see a contradiction. Either a vendor can extend standards, in whatever way they want, or they can’t.&quot;

If they claim to support standards and interoperability, they should use the standard&#039;s extension mechanisms. If they don&#039;t do so, they are lying about their support for standards and interoperability, and are therefore going to catch flack.

&quot;They’re under no obligation in any way. ... Remember, no vendor is under any obligation to implement standards.&quot;

They&#039;re certainly under some obligation. As any other vendor, they have an obligation to fulfill their promises. By adopting the CSS standard, they have an obligation to use the standard&#039;s extension mechanisms. They&#039;re not under any obligation to adopt the CSS standard, but they certainly have &lt;em&gt;claimed&lt;/em&gt; adoption. In short, they have an obligation not to mislead their customers.

&quot;Geez, I hate to sound like an MS booster because that’s just not accurate, but… is their behavior really any different than the other vendors?&quot;

Yes!

&quot;I mean, we have three different implementations of the same text rotation concept here. Sure, two vendors seem to have agreed on the value you set the attribute to, maybe just by chance, I don’t know, but the attribute name is different and therefore the API can’t be said to be the same because the API is not just the attribute value but also the attribute name.&quot;

You&#039;re wrong. The Mozilla and Apple implementations are identical, and according to the standard&#039;s extension mechanism. The prefix (-moz-, -webkit-, -ms-, -o-, et al) is not part of the property, it indicates a vendor-specific extension namespace. Even Microsoft has adopted that in IE 8&#039;s &quot;real&quot; standards mode. The property is &quot;transform&quot;. Mozilla and Apple are correctly following the extension mechanism in CSS to introduce new features by keeping their extensions out of the global namespace in order to await final standardization.

&quot;but so what? That’s their choice.&quot;

Not if their claim to support standards and interoperability holds any water. They catch flack for flouting what they claim to support, not for failing to meet expectations from on high.

&quot;Hell, they *could* decide that MS is onto something and their API should be the standard! I think we can assume that’s not going to happen, but it *could*, and that’s what makes it OK, that and the fact that we have a choice right now.&quot;

I think this ignores the fact that CSS as an API is generally consistent, and that extensions to CSS are adopted in a manner consistent with the existing API. Microsoft&#039;s extension is basically disqualified from the outset by being syntactically inconsistent, not to mention tying the syntax to its own internal, proprietary APIs (DirectX).

&quot;You know, this is actually a pretty bad example to argue about frankly because MS started offering these types of capabilities in like 1998 or so… they were WAY out ahead of others in this situation.&quot;

I don&#039;t think it&#039;s a bad example, because my point applies to &lt;em&gt;all&lt;/em&gt; of Microsoft&#039;s CSS extensions. They could have resolved this easily by providing API-consistent aliases to their internal functionality within IE 8&#039;s &quot;real&quot; standards mode (eg -ms-opacity: [decimal &gt;=0 &lt;=1] as an alias to -ms-filter: [DX crap]). Nobody cares that they use DirectX to &lt;em&gt;implement&lt;/em&gt; the functionality (except insofar as it produces inconsistent results), just that they require non-standard code to achieve the desired result. &lt;strong&gt;They&#039;re making us work harder and code more than necessary. They&#039;re unnecessarily costing us time and money.&lt;/strong&gt;

&quot;It’s not really fair for anyone (not saying you did this by the way) to criticize them for something they did BEFORE the “standard” was announced.&quot;

The vendor prefix for keywords (properties, values) was introduced with CSS 2.1 in 2005. http://www.w3.org/TR/CSS2/syndata.html#vendor-keywords

IE 8 began development in 2006 and was released in 2009. IE 8 claims to fully support CSS 2.1, but I think its handling of extensions is only according to the letter, rather than the spirit, of the standard.

&quot;don’t blame vendor A for not supporting standard feature B, blame the people that still insist on supporting vendor A with their business!.&quot;

What are we supposed to do, block 75% of web traffic? I think by doing that we&#039;d be breaking our own (implicit) obligations; obviously this is more or less tenable depending on the purpose of our websites/applications and their respective target audiences, but you get the point.

&quot;We’re at a point where no one is being forced to use any vendors’ browser any more, that’s an old argument that doesn’t, IMO hold water any longer.&quot;

That&#039;s false. A huge percentage of IE users, for example, are disallowed by their employers from installing a new browser. Including, apparently, you!: &quot;we’re an IE-only shop.&quot;

&quot;I still think it’s true that vendors will pretty much always be out ahead of standards bodies in terms of implementing functionality, and that’s the point I was making: if we completely ignored vendors’ extensions and stuck to standards we’d be depriving ourselves of some powerful tools. You’re right though, the delta between what the vendors provide and what the standards provide maybe isn’t as far apart as it once was.&quot;

I just want to reiterate to be clear: I&#039;m &lt;em&gt;for&lt;/em&gt; vendor extensions to CSS, &lt;strong&gt;provided the extensions are done according to both the letter and spirit of the standard&lt;/strong&gt;. There is only one exception to that, which is if the standard itself is incapable of supporting a given feature, in which case a &lt;strong&gt;new standard&lt;/strong&gt; should be proposed. As far as I&#039;m aware, the CSS standard is perfectly capable of including the &lt;em&gt;functionality&lt;/em&gt; of Microsoft&#039;s extensions, but those extensions fly in the face of the standard&#039;s API. If Microsoft wants credit for supporting the standard, they need to actually support it rather than paying lip service to it.</description>
		<content:encoded><![CDATA[<p>&#8220;Because that is, unfortunately, the way it has to be. Standards bodies move slooooooowly, and if vendors waited for finalized specs to implement we’d have less capability available to use as developers.&#8221;</p>
<p>You didn&#8217;t answer my question. Why would a developer want to <strong><em>differentiate</em></strong> between browsers? I&#8217;m not asking why a developer would want <em>extensions</em> (I think we agree they are a net positive), I&#8217;m asking why a developer would want to treat one browser differently than another.</p>
<p>&#8220;Agreed… but we’re not here talking about different results, we’re talking about different implementations of the same non-standard thing.&#8221;</p>
<p>Er, you were promoting differentiating browsers; different results is a necessary conclusion of that.</p>
<p>&#8220;I’m sure you aren’t arguing that MS should get together with Mozilla, Apple and Opera and agree on an implementation independent of standards bodies, are you? That would be a nice world to live in, but not a realistic one :)&#8221;</p>
<p>No, I&#8217;m arguing that Microsoft should take the same approach Apple and Mozilla currently take: implement extensions that are consistent with existing standard APIs, and then push for standardization of those extensions. I spelled it out in my last comment. Microsoft does neither.</p>
<p>&#8220;This is where I disagree and where I see a contradiction. Either a vendor can extend standards, in whatever way they want, or they can’t.&#8221;</p>
<p>If they claim to support standards and interoperability, they should use the standard&#8217;s extension mechanisms. If they don&#8217;t do so, they are lying about their support for standards and interoperability, and are therefore going to catch flack.</p>
<p>&#8220;They’re under no obligation in any way. &#8230; Remember, no vendor is under any obligation to implement standards.&#8221;</p>
<p>They&#8217;re certainly under some obligation. As any other vendor, they have an obligation to fulfill their promises. By adopting the CSS standard, they have an obligation to use the standard&#8217;s extension mechanisms. They&#8217;re not under any obligation to adopt the CSS standard, but they certainly have <em>claimed</em> adoption. In short, they have an obligation not to mislead their customers.</p>
<p>&#8220;Geez, I hate to sound like an MS booster because that’s just not accurate, but… is their behavior really any different than the other vendors?&#8221;</p>
<p>Yes!</p>
<p>&#8220;I mean, we have three different implementations of the same text rotation concept here. Sure, two vendors seem to have agreed on the value you set the attribute to, maybe just by chance, I don’t know, but the attribute name is different and therefore the API can’t be said to be the same because the API is not just the attribute value but also the attribute name.&#8221;</p>
<p>You&#8217;re wrong. The Mozilla and Apple implementations are identical, and according to the standard&#8217;s extension mechanism. The prefix (-moz-, -webkit-, -ms-, -o-, et al) is not part of the property, it indicates a vendor-specific extension namespace. Even Microsoft has adopted that in IE 8&#8242;s &#8220;real&#8221; standards mode. The property is &#8220;transform&#8221;. Mozilla and Apple are correctly following the extension mechanism in CSS to introduce new features by keeping their extensions out of the global namespace in order to await final standardization.</p>
<p>&#8220;but so what? That’s their choice.&#8221;</p>
<p>Not if their claim to support standards and interoperability holds any water. They catch flack for flouting what they claim to support, not for failing to meet expectations from on high.</p>
<p>&#8220;Hell, they *could* decide that MS is onto something and their API should be the standard! I think we can assume that’s not going to happen, but it *could*, and that’s what makes it OK, that and the fact that we have a choice right now.&#8221;</p>
<p>I think this ignores the fact that CSS as an API is generally consistent, and that extensions to CSS are adopted in a manner consistent with the existing API. Microsoft&#8217;s extension is basically disqualified from the outset by being syntactically inconsistent, not to mention tying the syntax to its own internal, proprietary APIs (DirectX).</p>
<p>&#8220;You know, this is actually a pretty bad example to argue about frankly because MS started offering these types of capabilities in like 1998 or so… they were WAY out ahead of others in this situation.&#8221;</p>
<p>I don&#8217;t think it&#8217;s a bad example, because my point applies to <em>all</em> of Microsoft&#8217;s CSS extensions. They could have resolved this easily by providing API-consistent aliases to their internal functionality within IE 8&#8242;s &#8220;real&#8221; standards mode (eg -ms-opacity: [decimal &gt;=0 &lt;=1] as an alias to -ms-filter: [DX crap]). Nobody cares that they use DirectX to <em>implement</em> the functionality (except insofar as it produces inconsistent results), just that they require non-standard code to achieve the desired result. <strong>They&#8217;re making us work harder and code more than necessary. They&#8217;re unnecessarily costing us time and money.</strong></p>
<p>&#8220;It’s not really fair for anyone (not saying you did this by the way) to criticize them for something they did BEFORE the “standard” was announced.&#8221;</p>
<p>The vendor prefix for keywords (properties, values) was introduced with CSS 2.1 in 2005. <a href="http://www.w3.org/TR/CSS2/syndata.html#vendor-keywords" rel="nofollow">http://www.w3.org/TR/CSS2/syndata.html#vendor-keywords</a></p>
<p>IE 8 began development in 2006 and was released in 2009. IE 8 claims to fully support CSS 2.1, but I think its handling of extensions is only according to the letter, rather than the spirit, of the standard.</p>
<p>&#8220;don’t blame vendor A for not supporting standard feature B, blame the people that still insist on supporting vendor A with their business!.&#8221;</p>
<p>What are we supposed to do, block 75% of web traffic? I think by doing that we&#8217;d be breaking our own (implicit) obligations; obviously this is more or less tenable depending on the purpose of our websites/applications and their respective target audiences, but you get the point.</p>
<p>&#8220;We’re at a point where no one is being forced to use any vendors’ browser any more, that’s an old argument that doesn’t, IMO hold water any longer.&#8221;</p>
<p>That&#8217;s false. A huge percentage of IE users, for example, are disallowed by their employers from installing a new browser. Including, apparently, you!: &#8220;we’re an IE-only shop.&#8221;</p>
<p>&#8220;I still think it’s true that vendors will pretty much always be out ahead of standards bodies in terms of implementing functionality, and that’s the point I was making: if we completely ignored vendors’ extensions and stuck to standards we’d be depriving ourselves of some powerful tools. You’re right though, the delta between what the vendors provide and what the standards provide maybe isn’t as far apart as it once was.&#8221;</p>
<p>I just want to reiterate to be clear: I&#8217;m <em>for</em> vendor extensions to CSS, <strong>provided the extensions are done according to both the letter and spirit of the standard</strong>. There is only one exception to that, which is if the standard itself is incapable of supporting a given feature, in which case a <strong>new standard</strong> should be proposed. As far as I&#8217;m aware, the CSS standard is perfectly capable of including the <em>functionality</em> of Microsoft&#8217;s extensions, but those extensions fly in the face of the standard&#8217;s API. If Microsoft wants credit for supporting the standard, they need to actually support it rather than paying lip service to it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: fzammetti</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274755</link>
		<dc:creator>fzammetti</dc:creator>
		<pubDate>Wed, 29 Jul 2009 19:40:21 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274755</guid>
		<description>@Nosredna: The way to handle that situation though is to try and get people to switch vendors.  We have a pattern when it comes to IE, we know how MS does things.  If they just simply missed support for canvas but were otherwise good we&#039;d be pretty confident they&#039;d implement it and be good to go with the next release.  We know that&#039;s not how it works though, and ultimately they have no obligation to do otherwise.

Rather than trying to change their behavior, let&#039;s sidestep the problem entirely and get people off IE as much as possible.  Not easy, not trivial, and in many cases not even possible, but we can and should try.  Sure, it&#039;s an idealistic goal that is probably a fool&#039;s errand, but it&#039;s worth doing, and in the end is probably less the fool&#039;s errand than trying to get MS to truly embrace standards :)</description>
		<content:encoded><![CDATA[<p>@Nosredna: The way to handle that situation though is to try and get people to switch vendors.  We have a pattern when it comes to IE, we know how MS does things.  If they just simply missed support for canvas but were otherwise good we&#8217;d be pretty confident they&#8217;d implement it and be good to go with the next release.  We know that&#8217;s not how it works though, and ultimately they have no obligation to do otherwise.</p>
<p>Rather than trying to change their behavior, let&#8217;s sidestep the problem entirely and get people off IE as much as possible.  Not easy, not trivial, and in many cases not even possible, but we can and should try.  Sure, it&#8217;s an idealistic goal that is probably a fool&#8217;s errand, but it&#8217;s worth doing, and in the end is probably less the fool&#8217;s errand than trying to get MS to truly embrace standards :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: fzammetti</title>
		<link>http://ajaxian.com/archives/text-rotation-for-all/comment-page-1#comment-274754</link>
		<dc:creator>fzammetti</dc:creator>
		<pubDate>Wed, 29 Jul 2009 19:35:16 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7154#comment-274754</guid>
		<description>Forgot to reply to this, because I think it&#039;s an interesting point:

&quot;I don’t really think that’s true. The standards have a lot of great features that aren’t available for use because of a lack of consistent implementation across browsers. That is what most of us are up in arms about.&quot;

You&#039;re totally right, there are parts of various standards we can&#039;t use because of browser implementations. and that totally sucks.  But that&#039;s placing the blame in the wrong place IMO... don&#039;t blame vendor A for not supporting standard feature B, blame the people that still insist on supporting vendor A with their business!.  

We&#039;re at a point where no one is being forced to use any vendors&#039; browser any more, that&#039;s an old argument that doesn&#039;t, IMO hold water any longer.  That being said, we need to start blaming the people that insist on acting like that&#039;s still true, and we need to be evangelists to get people to make the... ahem... &quot;hard&quot;... choice.  If IE isn&#039;t getting the job done, switch.  If that means we as developers have to stop supporting IE, then so be it.  

Now, I realize this is a pretty utopian comment to make... if I wrote an app that didn&#039;t work in IE at my job I&#039;d be in trouble because we&#039;re an IE-only shop.  That doesn&#039;t however mean that I can&#039;t and shouldn&#039;t evangelize about why we shouldn&#039;t be on IE any more, and standards support is the biggest reason IMO (not so sure security is a big differentiator any more).  And there may even be some cases where I can degrade the experience for IE and be like &quot;well, too f&#039;ing bad, get on a standards-compliant browser&quot;... err, in a slightly more politically-correct way of course :)

I still think it&#039;s true that vendors will pretty much always be out ahead of standards bodies in terms of implementing functionality, and that&#039;s the point I was making: if we completely ignored vendors&#039; extensions and stuck to standards we&#039;d be depriving ourselves of some powerful tools.  You&#039;re right though, the delta between what the vendors provide and what the standards provide maybe isn&#039;t as far apart as it once was.</description>
		<content:encoded><![CDATA[<p>Forgot to reply to this, because I think it&#8217;s an interesting point:</p>
<p>&#8220;I don’t really think that’s true. The standards have a lot of great features that aren’t available for use because of a lack of consistent implementation across browsers. That is what most of us are up in arms about.&#8221;</p>
<p>You&#8217;re totally right, there are parts of various standards we can&#8217;t use because of browser implementations. and that totally sucks.  But that&#8217;s placing the blame in the wrong place IMO&#8230; don&#8217;t blame vendor A for not supporting standard feature B, blame the people that still insist on supporting vendor A with their business!.  </p>
<p>We&#8217;re at a point where no one is being forced to use any vendors&#8217; browser any more, that&#8217;s an old argument that doesn&#8217;t, IMO hold water any longer.  That being said, we need to start blaming the people that insist on acting like that&#8217;s still true, and we need to be evangelists to get people to make the&#8230; ahem&#8230; &#8220;hard&#8221;&#8230; choice.  If IE isn&#8217;t getting the job done, switch.  If that means we as developers have to stop supporting IE, then so be it.  </p>
<p>Now, I realize this is a pretty utopian comment to make&#8230; if I wrote an app that didn&#8217;t work in IE at my job I&#8217;d be in trouble because we&#8217;re an IE-only shop.  That doesn&#8217;t however mean that I can&#8217;t and shouldn&#8217;t evangelize about why we shouldn&#8217;t be on IE any more, and standards support is the biggest reason IMO (not so sure security is a big differentiator any more).  And there may even be some cases where I can degrade the experience for IE and be like &#8220;well, too f&#8217;ing bad, get on a standards-compliant browser&#8221;&#8230; err, in a slightly more politically-correct way of course :)</p>
<p>I still think it&#8217;s true that vendors will pretty much always be out ahead of standards bodies in terms of implementing functionality, and that&#8217;s the point I was making: if we completely ignored vendors&#8217; extensions and stuck to standards we&#8217;d be depriving ourselves of some powerful tools.  You&#8217;re right though, the delta between what the vendors provide and what the standards provide maybe isn&#8217;t as far apart as it once was.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

