Hopefully the changes detailed here regarding xhtml compliance will come as welcome news to the community, we've tried our best to make the necessary changes without causing anyone an impact. Theres no doubt that if DotNetNuke had been created in the past few years, rather than still having some legacy values from it's original 2002 codebase, we would have started off using xhtml, as the benefits around accessibility compliance, smaller sized skins, performance and document validity ensuring the correct working of ajax frameworks, are great advantages (plus skin developers would not have to create custom *doctype.xml files).
In addition, XHTML 5, an update to XHTML 1.x, which is being defined along with html 5.0 , is increasingly seeing support being added to a number of modern browsers with the html 5 video element being added to firefox 3, and the forthcoming IE8 browser implementing HTML 5 spec's such as cross-document messaging, a client-side storage API, network connection awareness and a window location hash meant to place Web applications into the browser's back/forward stack. I also expect browsers to start adding support for the other html 5.0 APIs such as audio, graphics and video & interactive document editing, so supporting xhtml 1.0 is an important first step to ensuring that DotNetNuke is well future proofed.
With both these thoughts in mind, there was some debate as to whether it would be wise to make the default doctype xhtml 1.0 to ensure that DotNetNuke is adequately forward thinking and well placed to allow skin and module developers the ability to take advantage of these enhancements. However, whilst theres not a huge amount of difference between the html 4 and xhtml 1.0 specs, as xhtml 1.0 was designed to be html 4.0.1 reformulated in xml, with minor restrictions , there is a small danger that existing skins may show minor cosmetic issues if the doctype is changed. This is something we wanted to avoid, so to try and support the desire to future proof DotNetNuke but also preserve existing sites look & feel, we've made a small change to the default doctypes with 5.0.
If you're upgrading from a previous version we will preserve html 4.0.1 as the default doctype, but if you are installing DotNetNuke 5.0 for the first time we'll switch the default doctype to be xhtml 1.0 transitional. We've exposed the value as a host level setting, so that it can be changed easily if required. To do this, log in as a superuser, and go to the host->host settings menu. There you'll see a drop-down for Default Doctype, which allows selection of the default doctype for the install.
This value acts as the default doctype, but can still be overridden in a number of ways. First of all, it will respect the existing *doctype.xml support , so any skins that supply this file will correctly switch the doctype at the appropriate time. Secondly, the value itself is stored in a new property of the TabInfo object, SkinDoctype, so can be switched at run time e.g. you can add code in your ascx.vb to change the value of PortalSettings.ActiveTab.SkinDoctype.
Finally, if you know in advance of your install that you would prefer a different doctype such as html 4.0.1 or xhtml 1.0 strict, you can edit the Install\DotNetNuke.install.config and change the DefaultDoctype value ie.
<DefaultDoctype>0</DefaultDoctype>
would ensure that a new install used html 4.0.1 as it's default doctype.
We hope that these changes will not cause undue impact to users, and will act as a solid framework for future skin and module development, as well as encouraging the long-overdue movement into xhtml.