New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

DotNetNuke 5.0 xhtml compliance : Part 2

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.


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.


Comment Form

Only registered users may post comments.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out