In the midst of a discussion between the only four people in the world who care about such things, Asbørn Ulsberg writes:
I think the issue of getting plugin developers to author well-formed plugins is solved by getting the core of WordPress to support and enforce XHTML. Getting this right is, as I see it, a two-part enforcement and encouragement battle. First, WordPress should be outputting everything as application/xhtml+xml (including the admin pages) to supporting browsers. [emphasis added]
This is, quite simply, the worst idea ever. Many, many years ago, I explained in great detail why it was the worst idea ever. This is not just a theoretical problem:
When he [inserted an invalid Unicode character into my system], I ran into the very problem that Mark mentioned years ago and I had to poke my WordPress database option to switch back to text/html for the WordPress admin panel so I could correct Jacques’ invalid character.
Wordpress constitutes a logical system. If errors are introduced into that system, the administration panel is the only place within the system that you can correct those errors. If the administration panel itself does not tolerate the very errors it seeks to correct, then you can not fix the errors without jumping out of the system. This is Logical Systems 101. Go read Gödel, Escher, Bach, then come back and argue in favor of enforcing draconian error handling everywhere.
Sam does not have this problem, because he doesn’t have to fix errors from within his system. (In fact, his weblog has no administration panel at all. All of his administration is already done from outside the system.) But your average Wordpress user doesn’t have that luxury; they’re constrained by either a lack of knowledge (don’t know how to jump out of the system) or a lack of privileges (not allowed to jump outside the system). In my original thought experiment, Nick had the latter problem, because he was running on Typepad and had no access to anything outside his own administration pages.
(Interesting postscript: Thought Experiment led to the only documented case in the history of my blog where I changed someone’s mind through reasoned argument. Possibly the only documented case in the history of the internet, though I would be interested in other examples if you have them.)
§
I’d be more than one example, especially in 2002, ‘02, ‘04 years. Perhaps one of the reasons there are less public documented cases is a matter of style. In the last years you’ve seem to abandonded the argument-rich articles, thought experiments and exploratory discussionin favor of rants, more rants and cynism (The ever-present: »You must be new here…«). Sometimes I don’t care but sometimes I miss the old Mark, being much more impressive. But that’s just me; your and others impressions may – of course – vary.
Bingo. In fact this was a problem in the past as well. Remember when you had a plugin with an error? Couldn’t disable through wp-admin as that had a php error as well. Only workaround? Rename or remove the plugin to disable it.
Thanks for pointing the finger, Mark. ;-) What I’m trying to do is merely flesh out how to get WordPress to be XHTML compliant. I’m not touting XHTML and I’m not a big supporter of XHTML at all. With Opera’s fallback mechanism, the admin won’t be rendered completely unusable. In Internet Explorer, it’d be available in “text/html” either way.
Plus, this was only the first part in a two-part process of getting WordPress to fully support XHTML, and perhaps the parts should have been reversed. Or perhaps both of them are such braindead suggestions that they shouldn’t even be thought of without getting your head beaten with a wet stick. Either way, I’m quite happy with how WordPress works right now, straight out of the box.
If Wordpress were to do that, they would need to implement a validation script that all input would be put through…for any application/xhtml+xml. As long as they don’t, then you are right.
I think the biggest issue of getting WordPress to make sure it could output well-formed XHTML is Unicode (for lack of Unicode support in PHP 4.2) and an HTML parser (to serialise HTML input as XHTML), which is hard as PHP 4.2 doesn’t support DOM natively, and de-facto HTML requires all kinds of bizarre behaviour that cannot be done on a stream (as you can’t change a previous item in a stream).
Yeah, it’s safe to say that won’t be happening. As Robert notes, this is precisely why plugins are now tested to make sure they’re not throwing a show-stopping PHP error before they are activated. It’s why we don’t do any yes-www/no-www canonical domain redirecting while in the admin.
Just out of interest, have you ever changed your mind as a result of someone else’s reasoned argument? If so, have you documented it?
I’m not trolling; I don’t think I have either. It’s certainly something to be encouraged by example.
— Alastair ![]()
Ian Hickson convinced me that sending XHTML as text/html is worthless at best, harmful at worst.
http://hixie.ch/advocacy/xhtml
That’s the first one that comes to mind.
— Mark ![]()
Does reasoned argument count as “look, Wikipedia says he died in 1994, deal with it”?
— Mark ![]()
People convince me I’m wrong through rational argument all the time on the WHATWG list. Mixing blocks and inlines, allowing /> in void elements, allowing xmlns=”" on in text/html… What’s funny is that a whole bunch of people complain that they can never change my mind, that I’m set in my ways and biased, and almost without fail, they’re the ones making the irrational arguments (“but I’m an EXPERT!”).
Ian: the “people” who convinced you in those three cases don’t complain that they can’t change your mind. “They” complain about other things. :-)
— Sam Ruby ![]()
Bitch Ph.D’s Feminism 101 convinced me that my old way of viewing the politics of child bearing is wrong (at least the issue of how to think of the choice to have children). It’s a bit ahhh..bitchy, but it definitely counts as reasoned argument.
— Justin ![]()
So… the highly recommended method of delivering a web page is ?
Oy. This could mean I’ve been doing up my sites incorrectly for a long time – though seemingly valid. So what does that mean regarding transferring your information from HTML to XML and vice versa?
So… the highly recommended method of delivering a web page is ?
@the above anonymous
Apple/Ctrl-p, then by hand, but if that fails, the mail service in this country is pretty decent.
— Mark ![]()
:P it was a typo thingy. the suggested on this site is: !DOCTYPE HTML
What does this allow or not allow you to do as opposed to the other avaialable Doctypes?
I am no longer accepting public comments on this post, but you can use this form to contact me privately. (Your message will not be published.)
§
© 2001–9 Mark Pilgrim