We are on the brink of a very exciting time. The buzzword-friendly “Web 2.0” is here, and it’s most punctuated by three terms: social networking, AJAX, and RSS. Nothing about these things is inherently new – AJAX existed as an ActiveX control present in Microsoft’s Outlook Web Access long ago, social networking has existed for some time via sites like Friendster, and RSS is just a style of XML, which has been floating around in mainstream tech circles for about 10 years. But Web 2.0 is here, like it or not. The question is, as use of these technologies begins to become more widespread, how are we going to shape these technologies, and who is going to make those decisions?
Some time ago, I started playing with styled RSS on my website. I used standard CSS, rather than the more advanced XSLT (“Extensible Stylesheet Language Transformations”), because all I needed was style, not the amazing transformations that XSL can accomplish, which actually includes introducing a dynamic element that appears to add javascript-like functionality. The purpose was twofold – one, to prove I could do it. This is very often the motivation behind things I code: to do it just to have done it. This is the entire reason my website has an API, just because I wanted to experiment with handling blogger/metaweblog API requests.
The second reason for styled RSS was a proof of concept for an internal application for my company. The idea was a search engine on top of some of our internal databases that returned styled XML (either RSS or Atom) to the client. This way, our other internal apps could query the same exact page, but parse the data reliably. What a novel concept: interacting applications, user friendly search, and half the code for a single interface. Perfect.
Things were coming along nicely, until I tried Firefox 2. I realized very quickly that Firefox 2 decided to override my style in favor of its own stylesheet. As far as I could tell, there was no way to shut it off. So I opened a bug in Mozilla’s Bugzilla database. As you can see, the developers marked it WONTFIX, meaning, they didn’t consider it a bug and won’t fix it. Luckily, after some time and several angry posts, it was reopened.
Now, lest anyone think I’m taking advantage of my status at OSNews to gripe publicly about my personal bug, there’s a point to this beyond this bug, so bear with me.
The developers had made their stance on this bug known and suggested moving the conversation to USENET. Before moving off line, I decided to check in with other popular browsers. I fired up IE6 to test. As expected, IE 6 displays the RSS feed properly styled, as expected. Next was the new Internet Explorer version 7, and found that sure enough, IE7 overrides my style as well. IE7, however, is different in three major ways:
- Like Safari, IE7 is a full featured feed reader: you can subscribe in the browser and manage read/unread feeds. This shifts the action from viewing a single feed to a secondary goal of the application, feed management.
- IE7 adds additional functionality beyond that offered by simply RSS, such as the ability to search, organize and reorder via date or title, and search within the active feed and the feed history (XSLT can also accomplish some of these things, but not all of them).
- Most importantly, IE7’s so-called “feed view” can be turned off in the browser preferences (Tools > Internet Options > Content) and you can view the feed with the intended style.
IE7’s default feed view, and the same page with the xml-stylesheet applied properly
(note that some CSS2 is still missing, such as :after { content: }).
Next, I checked out Opera to see how it handles XML feeds. Opera is also a full-featured feed reader that allows you to subscribe to and read feeds from within the browser. When visiting a feed, an alert window, much a like a Javascript alert, pops up and asks you if you’d like to subscribe to the feed. In the meantime, the feed is rendered in the background with the XML style properly applied. Unfortunately, if there is no stylesheet, it renders it normally, which is the ugliest of the three. It doesn’t even present a DOM tree for unstyled XML, which was the default behavior of Firefox and IE before their current versions.
Lastly, I searched for workarounds for this behavior in FF2, and found one that amounts to little more than a dirty hack. Firefox determines a feed by sniffing the first 512 characters of a file and searching for the string “<rss” or “<feed”. If either is found, the XML is presented as a feed with the feed stylesheet. The unofficial workaround is referred to as “byte-stuffing,” and boils down to adding at least 512 characters (spaces included) to your feeds before the opening
Knowing how feeds are generally handled – which is vastly different from browser to browser, I posted my piece to the USENET group mozilla.dev.apps.firefox. It has become the longest thread in quite some time in this group. There, we’re had some very interesting conversation. The Mozilla developers argue that RSS and Atom is intended to be read by a feed reader, and therefore, presenting a consistent and easy to use interface to users is the smartest path and is an intentional design decision. The opponents argue that Mozilla has overridden developers, deprecated an existing valid XML construct, and in the meantime, prevented any Firefox user from ever seeing styled XML (at least, RSS and Atom) as intended. In short, it now cannot be read by a human with intended style, as the style is not accessible – not via a preference, not via about:config, not via a menu. There is no way a feed can be read without hacks even if the client wants to. Firefox thinks it knows better.
For the record, similar discussions have occurred in different venues regarding IE7. As seen here, it’s been the same conversation, although over on Channel 9, most seem to agree this behavior is not acceptable.
Either way, the USENET discussion appears to be at a stalemate. My final arguments included the notion that as technology becomes popular, the designers often tend to cater to a wider userbase and alienate the very users who helped grow the application to begin with. There are several other respondents who had similar viewpoints. Ultimately, right or wrong, the developer standpoint seems to be that RSS and Atom are not intended for human consumption and should be styled in a manner that makes it easier for a user to subscribe to a feed automagically. All of this is fine, except it breaks the system for anyone who has come to use and rely upon XML as it has been used for the last several years and is still valid according to W3C standards. Sites that have worked for years that are extremely styled will no longer work without a hack.
Which brings us to the underlying question – without regard to this debate – the question is, when common use begins to define a course of action, but there is already a “de facto” standard – that is, accepted as the common manner of use – how can we/should we go about changing it? Furthermore, who gets to do it?
It appears the Mozilla Foundation is going to push XML subscription forward kicking and screaming, but in the process, they are going to anger at least some group of developers and webmasters. In the process, they could potentially thrust a new technology to a a whole new group of users – a net positive, I’m sure we’d all agree. However, it’s equally likely that RSS will never catch on with average users, but the same content providers will remain angry about this type of decision.
Perhaps this toe-the-line kind of decision making is a necessary sacrifice. Perhaps it’s just the price of moving technology forward. I see it as a shame, because technology advocates, an admittedly small group, tend to be very vocal, and more importantly, they are, in large part, the people who delivered the 10-15% of the browser market that Firefox has.
Here’s the catch: if Mozilla developers don’t dictate the future of common XML use, who does? Microsoft? The W3C, whose role is supposed to be writing and maintaining standards? Is it users, who will employ technology as they wish, but ultimately, can’t contribute back code to make things work as they think it should?
Everything aside, there are still major differences in the way browsers handle and display RSS. This is the exact same styled feed in IE7 with feed view off and Firefox 2 with the byte-stuffing hack.
XML is going to play a large part in data exchange in the future. For about 8 years now, the idea of exchanging information over the internet in a non-terse validate-able manner has been growing, and the numerous website APIs and even the mere existence of sites such as digg.com, technorati, and reddit, social bookmarking sites that can drive large amounts of traffic to your site, are proof that data syndication is not only viable, it is where the next wave of growth will likely be. Businesses that are sending spreadsheets around will soon find that XML is capable of helping them automate much of their workflow. However, in doing their best to make XML more friendly, technologies such as Atom have been crippled.
When technical folks are left out in the cold with no solutions, they tend to migrate to a new product or a new technology that can accomplish what they are trying to do without dirty, unreliable workarounds. The future of XML has not been cemented. It remains to be seen whether or not RSS ever catches on in a meaningful way or remains another niche tool for a small group of advanced users. In the meantime, who gets to steer the ship? And moreover, who should it be?
Very important points.
These standards are (and will be) very in our daily life. I hope these details get better attention and get more serious discussion.
That Web 2.0 is here, like it or not, if this implies that it’s here to stay – what apparently underpins Web 2.0 is the ability to link services and content together, mash-ups, and all that, but without the potato, where’s the mash? Technology, or its relative cementedness is one thing, the business model and licensing of access to and re-usability of content and services is another. You could say that Web 2.0 doesn’t link anything but other links to make a chain, but a chain is only as strong as it’s weakest link, and anyway, what’s a chain – anything more than 2 linkages? OK, so I am not developer, but in my field of knowledge management, AFAIK Web 2.0 is still no more than hype, because no-one really knows how to factor it into a sustainable business environment, or predict sufficiently how this may happen in order to deploy soundly or make the full transition to it as *the* revenue stream. Other sectors may have different experiences, I don’t know, but for me, the hip of the hype is already getting a little tedious
Who is going to make those decisions?
Samuel L. Jackson, that’s who.
Whoever cobbles up something that becomes the most popular.
Their ‘API’ will become the defacto standard.
Edited 2006-11-07 17:35
but when ever i have heard about rss, it have always been as a kind of raw data stream, not as a “lite” web page…
but then i have never payed much attention to the development of RSS, i have just used it (via firefox with the sage extension).
still, i see that your RSS talk is just an example used to hi-light the question people have been asking since the browser war between netscape and microsoft.
one of the problems with RSS is that i don’t think there are any formal standards or expected default behaviour for when a browser encounters a RSS feed.
this seems to always be the problem of web based tech, the standards often come way to late (kinda like new laws in a way).
I used standard CSS, rather than the more advanced XSLT
After this rather incredible point of cluelessness on the part of the author I saw no value in continuing.
I love when people leave arrogant comments that suggest they are some sort of expert, but leave no evidence or justification. Explain yourself rather than just spouting off pointlessly. XSL is not the same as CSS. With which part are you taking issue?
http://www.w3.org/Style/XSL/
I don’t believe XSL is ever for styling pages. I don’t see how you’d do that other than a transformation onto bad xhtml (xhtml is not supposed to contain style components, you’re supposed to use CSS for that). The overlap in name “style” is probably why people believe it’s for format styling, but it’s for data styling (whatever that actually means).
http://en.wikipedia.org/wiki/XSL_Transformations
I get what you’re saying, but isn’t that just taking a really narrow definition.
So one means “bolding, aligning, and adding pretty colors” and one means “organizing in a meaningful fashion,” but in English, aren’t those both considered “styling?” Assuming we recognize a difference, is the original sentence actually wrong?
I’m sure my point is pretty obvious to anybody familiar with both of them. I would’nt think of using one without the other, there is no choice between the two to be made, they are not even similar technologies. If your input is in XML you transform it with XSLT and link in a CSS2 stylesheet to make it look like something worth reading and probably another of javascript to bring in some interactivity, ajax or whatever. The statement made no sense to the arrogant and clueful so they stopped reading it.
…f your input is in XML you transform it with XSLT and link in a CSS2 stylesheet to make it look like something worth reading..
You don’t have to use XSLT for this. You can use CSS on its own to pretty up XML. As for JS and AJAX, wtf, it’s an rss feed, what kinda functionality do you really need?
So your insistence that you need to use XSL is both wrong and missing the point. Of course it’s possible you know this, and you were just hinting that XML+CSS is just annoying and works oddly in different browsers, in which case I agree. In this case XSL sounds like major overkill tho.
I agree with author that having a standards “compliant” browser ignore an authors style directives isn’t the behaviour that a developer would expect. However MS and IE have proven that web developers shouldn’t have expectations, they should be (are?) pathetic wretches wasting their sanity testing code and markup in six million browser versions.
Edited 2006-11-08 02:09
Unless I misread that entirely too long thread, it looks like this, to me:
1) Prior to FF2, RSS feeds, by default, looked really bad when entered as a URL.
2) Many developers worked around this by supplying a stylesheet.
3) FF2 came out with drastically better default handling of RSS.
4) FF2 devs decided to ignore the existing style sheets because they were PROBABLY no longer needed.
If the above is correct, it would be really hard, IMHO, to argue that FF devs are NOT user focused. They tried to do the best thing for the average user. Given that there is no one, today, technologically, to differentiate between CSS because I really want it and CSS because otherwise (old browsers) it will suck, you really have two choices when an RSS with a CSS is found.
a) Don’t apply a default style.
b) Apply a default style.
Between these two, FF did the right thing, IMHO.
Now, the other question, how configurable should this be and how should it be configured, is completely separate.
Some FF devs are arguing that it is configurable with a 512 byte comment at the beginning of the feed. The counter arguments of unchangeable feed data, wasted bandwidth and fragility argue against this.
Others have suggested an extension based fix. Install extension Foo and view your feeds any way you want. Given that extensions are easy to install, user focused, the rarity of the desire to use a custom style sheet and the flexibility that this offers, it seems like a good choice to me. Not to mention that anyone can write one and the FF folks don’t have to agree.
Finally, some clickable UI control (drop down, button, whatever) that allows you to choose different style sheets was suggested. Does this bloat FF? Does it add more code to something that is enormous to begin with? Does it simplify the average user’s life?
I think that this is one of those cases where an extension is called for. As JLG used to say, “a third party opportunity”.
It seems to me that this is really just annoying more than anything. If users don’t like this they should complain.
For devs, I don’t think they have any business complaining. I don’t see how styling an rss feed yourself is going to help the user out in any significant way, especially if they prefer to have all rss feeds look alike.
It would be good for this to be an option though, because some people may like to see differently themed rss feeds, and it seems like this would be an easy thing to make an option out of…
You’ll have to provide both HTML (with whatever styling you want) and RSS/Atom (with no styling) versions, just like pretty much everybody else does.
Got it. So Atom is pretty much dead before it got started.
Why do you imply from that statement that Atom is dead?
You just don’t understand what the real purpose of RSS/Atom.
… it’s not to transfer style information!
It’s a data-exchange format, so that no complex parser is needed on the client-side.
And there is not just one RSS, but at least three major RSS versions: 0.9.x, 1.0, 2.0
RSS and Atom are based on xml syntax, just a standard so that different service/apps can read the data.
It’s better to provide the blog, newsletter, what ever as html and additionally as RSS and/or Atom (better both) xml files.
Excuse me, sir, but NO — limitations in your implementations have led to your narrow viewpoint. Of course Atom doesn’t transfer style- it’s XML! No one argues that it does. But you’ve cut its feet off in your myopic, single-purposed world.
Atom may have been developed for data exchange, but it’s used in several places in different ways. The existence of CSS and XSL have made it possible to build functional webpages that serve multiple purposes in one shot. By overriding the valid style declarations, you’ve knocked Atom back down to stricter RSS again.
I know who ISN’T pushing XML forward in any way whatsoever – you.
> I know who ISN’T pushing XML forward in any way whatsoever – you.
My comment was about RSS and Atom, both in general.
XML need no “pushing” anymore, nor another hype. It’s already there.
It’s not about XML, it’s about metadata and Semantic Web, it’s about WWW-3.0 …
You can of course use RSS/Atom news feeds in what ever style, behaviour you want. Adding CSS or other style information is just meant as fallback solution, if the user open the deep-link with a web-browser (excluding the lastest generation).
The RSS/Atom feed was meant for Reader-Application, (Web-)Services, etc.
Of course, you can do with it what ever you want. But you cannot assume that everyone want it like you (or someone else) propose it.
You could try alter the RSS (or what ever) standard guidelines and create a new version, or a new format. There is no driving force behind most of the xml based formats.
Maybe you have already heard of mirco-formats (like hCard, hReview, hCalender, etc.) or even Semantic Web.
Metadata is already and will become more important in the next years. Currently, there is a movement from WWW-1.0 to WWW-2.0, and Semantic Web is meant to be something like WWW-3.0.
All these technologies and formats have one thing in-common:
They have been designed to make it easier for computer applications to understand what’s the text/page/object/what ever is about.
To sum up: not only web search engines nowadays use newsfeeds to keep their index and cache up-to-date. Data mining and a lot of other areas depend on metadata, and newsfeeds contain a lot of them, normally.
Edited 2006-11-07 20:55
Like previous commentor, I see Web 2.0 / mashups as relying on standard APIs and coherent, long-lived hosted services.
Application X takes a type 1 feed from site Y which consolidates feeds from sites A, B, C,D using feed types 2,3,4 & 5v1.001.9beta. Applicaition Z overlays, via a propriarty method, geographical information on the output of X, which is used by estate agent site K, ad infitinum.
Any single change in information structure, APIs, applicaiton behaivour will kill a downstream application, or worse destroy the integrity of information provided to end-user.
Not to mention the legal minefield of who owns information and to what purposes licesnes allow, who is liable if a site goes down or owner goes bankrupt, etc.
Adam,
I quite agree with your points, and find the 512 blob hack an annoyance at best. An extension isn’t a solution for this, it’d need to be a rollout in a 2.0.1 update.
As for usable solutions: Mozilla could easily supply an XSLT document to create a warning atop feeds with custom styles – but you’ll always have the problem of this interfering with the developers’ layout.
I do have to query your use of “XML” in the title of the report. This is purely an RSS/Atom problem. XML will, and is used in a lot of backends, databases, and documents (hello ODF ).
If I serve custom XML (non rss) to Firefox, and either use CSS or XSLT to change the output, I’ll get exactly what I want.
So really you meant, “The Future of Feeds?”.
It kind of implies that XML has a future 😉
There is also the possibility that sanity might kick in one day.
Nice title, too bad this has nothing to do with XML itself and everything to do with the subset of XML known as RSS/Atom.
Did you actually read the article?
The discussion goes something like this: if browser manufacturers can make decisions about how a particular subset of XML can be used and then force that decision into the mainstream, what’s to stop them from altering the course of the way /any/ XML (delivered by the browser) is used?
“if browser manufacturers can make decisions about how a particular subset of XML can be used”
Where in th XML and/or RSS/Atom standards does it say that CSS *must* be processed and respected? CSS is not part of the RSS specification so you’re basically complaining that your non-standard way of using RSS isn’t working the way you want it to.
AFAIK, CSS in XML optional and not using an optional element is not “making desicions” about XML.
Also, they are not altering the way it is used, they’re altering the way it is displayed. There’s a crucial difference.