Another day, another accessible MOSS website

Search

Accessible SharePoint WebSites
Download ARF

Another day, another accessible MOSS website

http://blog.thekid.me.uk

I have recently been working on a number of public MOSS websites, all of which need to be accessible. Making websites accessible with MOSS poses a number of problems, but none of them are that big. I thought it maybe useful to post about how I approach it and how some of the problems can be overcome.

To develop your accessible SharePoint publishing site visit SPWorks to download ARF, a free development framework.

The first thing I would say about accessibility in MOSS is that it will be extremely difficult (if not impossible) to make a site accessible (to AA or AAA) if you are using the webpart framework. This means that WebParts are out...even the extremely useful ContentByQuery webpart. Publishing controls and standard ASP.Net controls are your friends and should be used in place of webparts.

The problem with webparts is the WebPartZone, which generates a table to host the webparts, and the webparts themselves which generally create a TABLE in which to live. These TABLEs can be difficult to remove and I am yet to see a solution which doesn't involve some slightly 'hacked' code.

So how do I approach it...

  1. Create a standard MOSS publishing site.

  2. Delete the 'Press Releases' sub site.

  3. Go to the site content types and create new content types for your site. I normally create a BasePage for the site, which inherits from the Page content type. This will become the base for all the other content types used on the site (this allows columns to be added to all pages in the site later in development). I then create HomePage and LandingPage content types, which inherit from the BasePage.

  4. I then create the layouts for both the HomePage and a default LandingPage.

  5. Once that is done you can create a new home page using your new layout. This should then replace the default 'Welcome Page' for the site.

  6. You will now be free to delete the 'default.aspx' created when the site was initially created. Also, I would normally rename the newly created home page to 'default.aspx'.

  7. I would then create a temporary subsite, which will be used to create a site template. In this subsite you create a new welcome page using the default LandingPage layout created in step 4, ensuring you set the 'Welcome Page' to use the Landing Page and delete the OOTB 'default.aspx'.

  8. At this point you can delete all the OOTB master pages and layouts. I normally remove them in order to shrink the contents of the 'masterpage' folder. Make sure you do not delete PageLayoutTemplate.aspx...SharePoint needs this.

  9. Once that is done you can create the new subsite template. Navigate to the 'Site Settings' of the subsite and replace 'settings.aspx' with 'savetmpl.aspx' in the address bar. This will allow you to save the site as a template. Give the template a meaningful title, ensure you include content and save it.

  10. Now you can delete the temporary subsite.

  11. Go to the 'Site Settings' for the site and select 'Page Layouts and site templates'. Here you can remove the default 'Publishing Sub Site' template and select the one you just created. This will ensure that all new subsites are only using the content types & layouts you have created.

  12. You can now create your new master page for the site. You can get a minimal master page from Microsoft. Which gives you a good start.

    At this point I would recommend getting and using the Floating Console from Artemis. This removes the burden of positioning the SiteActionMenu, PublishingConsole, etc within your page design and best of all it's free!

  13. At this point it is best if you have the HTML from the design company or whoever is producing the accessible HTML for the site. Take the HTML source you have and paste everything within the BODY tag of the design into the FORM tag in your master page. Add the CSS and images to the appropriate folders within the site and fix any IMG tags with the HTML you pasted. Then add the CssRegistration entries to your HEAD section, removing any ones added by SharePoint. Don't forget to change the DOCTYPE at the top of the master page if you are using XHTML.

  14. You should now be able to navigate to the home page of you MOSS site and it should appear exactly as the same as the page from the design agency. If it doesn't check you CSS and images...there maybe image references in the CSS which you have not changed.

And that is kind of that. You now have a MOSS publishing site which looks exactly like the design. Your job is to work through the different sections of the page replacing them with placeholders (which allow the layouts to generate thier own HTML), publishing field controls (controls which update columns/fields of the page) or normal ASP.Net controls which just generate HTML.

Your goal here is to gradually add controls or placeholders to the page which re-produce the accessible HTML they replace exactly...which is why webparts are out!

I normally start with the navigation (being able to navigate the site is good)...this generally involves creating a new control which inherits from System.Web.UI.WebControls.Menu. This serves as a direct replacement for the default SharePoint menu control and will use the same datasource. This retains the ability to modify the navigation via AreaNavigationSettings.aspx.

Another option for menus (Navigation) are the CSS Friendly Adpaters, which can produce the same results...personally I prefer XSL, but they both work well.

If you read my blog, you are probably aware that I like to use XSLT to produce the HTML... my menu controls always produce XML and use an XSL stylesheet stored in the 'XSL Style Sheets' folder (or similar) to produce the HTML. This makes re-producing the HTML from the design very easy and it makes changes, due to the inevitable design changes throughout the development, easy.

Identifying the 'content area' is normally next which allows the PlaceHolderMain for all the layouts to be defined. After that editable content is probably easiest to replace with a standard HTML publishing field controls.

SharePoint has a lot of field controls OOTB which can directly replace the HTML content, but you will probably need to write some of your own. My post about publishing controls has some sample controls.

One of the first I normally create is a SPSiteDataQuery control which, using some of the methods I have mentioned previously , generates XML and uses XSL to produce the HTML. Most websites list postings (News, FAQs, Recently Updated, etc) and so creating a flexible base class can really help...this will be your replacement for the ContentByQuery webpart.

You now gradually work your way through all the layouts required for the website, replacing the HTML in the design with a control which re-produces exactly the same HTML...only dynamically.

There are other issues but this should give you a good start...I intend to follow up this post with further recommendations and sample code which will should give you a 'leg up' towards producing an accessible SharePoint website...watch this space!

UPDATE: An article decribing a sample control is now available

If you would like to use the same concept to develop your accessible SharePoint publishing site visit SPWorks to download ARF, a free development framework.

Posted by Vincent Rothwell on Tuesday, 1 May 2007 17:56  - 103 Comments
Orininally printed from http://thekid.me.uk - Copyright Vincent Rothwell 2007
 

Comments

Sunday, 27 Jul 2008 04:36 by Craig
Great post. Just as I thought, webparts are useless for accessibility. I don't know when Microsoft will realise what the real world of development is like!!

Sunday, 27 Jul 2008 04:36 by Anders Rask
To say that webparts/webpartzones are useless for accessibility is making things a bit too simple... The only place that will give you problems with accessibility if you use microsofts own (often non-extendable) web parts (not including ContentByQuery since that only renders your own HTML from your own XSLT). Just make sure you programmatically/in webpart xml/in gui set chrome to none, then you yourself are responsible for the HTML in your render methods. The web part zone can be overridden as most other controls using a CSS adapter, i have seen plenty of examples on this. http://blog.sharepoint.ch/2007/12/webpartzone-adapter.html regards Anders Rask

Sunday, 27 Jul 2008 04:36 by Jose Antonio de Alarcon
This is a accesible web site Moss 2007 www.ciudaddelaluz.com Ciudad de la Luz Studios Alicante (spain)

Sunday, 27 Jul 2008 04:36 by auto insurance stolen replacement value audi
morsel reevaluated balk specialized every submissive granddaughter frontage

Sunday, 27 Jul 2008 04:37 by paisleygo
can you elaborate on what you mean by "create a BasePage for the site, which inherits from the Page content type" can I do that in sharepoint designer - or is that a visual studio step?

Sunday, 27 Jul 2008 04:37 by Vince
Hi, The BasePage is a content type. You will find these under the Site Settings->Site Content Types. When you create a Layout you need to specify the content type, by specifying a base type all your other content types can inherit from that. If in the future you need to add a column to all your layouts then you can just add it to the base. HTH, Vince

Sunday, 27 Jul 2008 04:37 by paisleygo
can you elaborate on what you mean by "create a BasePage for the site, which inherits from the Page content type" can I do that in sharepoint designer - or is that a visual studio step?

Sunday, 27 Jul 2008 04:37 by paisleygo
does the moss publishing site - need to be a site collection?

Sunday, 27 Jul 2008 04:37 by Matthew McDermott
Can you elaborate on the menu technique you use? "my menu controls always produce XML and use an XSL stylesheet stored in the 'XSL Style Sheets' folder (or similar) to produce the HTML." This is my next area of focus to try to eliminate SharePoint tables. Thanks!

Sunday, 27 Jul 2008 04:37 by Adrian
Hi there.. "Once that is done you can create a new home page using your new layout. This should then replace the default 'Welcome Page' for the site." Could you please enlighten me on how you managed to do this?? The browser interface won't let me create a publishing page anywhere other than in the /Pages/ library... Even if I go to my own custom library which will accept publishing pages, and click create new page, the new page still ends up in the /Pages/ folder. The strangest thing is that, once the publishing page is created, it can be moved from /Pages/ to wherever you see fit. I'm guessing this is how you managed to replace the default default.aspx (which is of course a web part page) with a nice content-type-page-layout-based publishing page. Well it's fine for just replacing the home page. But what about all the other pages that are going to make up my website?? I don't want users creating new pages in libraries only to find out that they got created in /Pages/ instead. I read that you can write a HttpModule to strip out /Pages/ from the URL. But this seems a very messy approach just to disable some non-enforced behaviour that is "by design" according to microsoft! Surely they would have realised that MOST people wouldn't want /Pages/ in the URL of their public WCM site??? Apologies for being irate but this issue is driving me nuts. There must be a simple solution.

Sunday, 27 Jul 2008 04:37 by Vince
Adrian, No need to appologise...I know alot of people who are also irate about this 'feature'. Essentially all publishing pages have to live in the 'Pages' library and, AFAIK, they cannot be moved without potential problems. If you look at the majority of publishing sites using MOSS they all have /Pages/ in the URL, with some exceptions...www.trustcorgi.com, www.artemiscorp.com...which use the 'Rapid For SharePoint' to re-write the URLs without the /Pages/ Essentially, Microsoft are aware of it, but do not think it is that much of an issue (I have raised it several times with the product group). I have to say that I find its about 50/50 as to whether people care about it or not. Ultimately the only way I know to remove the /Pages/ from the live site is to use the URL rewriting in Rapid (which is free)...However you still have the /Pages/ when authoring. You can also rename the 'Pages' library if you want it called something else, but that is about the best that SharePoint supports OOTB. In the article the default.aspx I refer to in the one in the 'Pages' library, not the default.aspx at the root of the site. --Vince

Sunday, 27 Jul 2008 04:37 by Paisley
Hi, thanks for this article - I wondered when you say "Create a standard MOSS publishing site" if you mean a site collection - or will a subsite work - I do not have a press release subsite - when I create it off my portal - so I will assume you mean this needs to be a site collerction

Sunday, 27 Jul 2008 04:37 by Alt
The floating console you linked to looks an interesting solution, I had to rebuild the masterpage with out tables and build all these features back in. It all works fine, but was a bit of work. One issue I have not found an answer to is with the doctype declaration. As soon as I add that, the Site Action and other menus on the top bar stop working correctly in Firefox and other non-IE browsers - they pop up in the wrong places on the page, including the sub-menu's. This makes them ugly at best and unusable at worst. Wonder if the floating console helps at all? Have you come across this? Currently our sites are in a transitional state, standards wise, but without the doctype we have to battle Quirks mode issues. Also like your approach to loosing Web parts as a solution to the nasty table layouts MOSS throws about, I'll have to read up on more of your website. I'm not sure if our organisation would readily accept loss of webparts though even if we were able to replace the important ones with custom built controls.

Sunday, 27 Jul 2008 04:37 by Alt
Should also add - The normal ASP menu's work ok, it's just the SharePoint ones (Site Actions etc). I have been able to replicate the problem with the Microsoft Minimal masterpage, before I add any of my CSS and customisations. Be interesting to know if you have come across this yourself and if you have found a solution.

Sunday, 27 Jul 2008 04:37 by Henrik Weimenhög
This looks great! My first reaction to this is - Why isn't there a site template or starting kit with all this ready to go? Do I really have to do these steps everytime I start up a new site? I would love to see a package with the above plus some controls for menues and such wrapped up in a starter kit together with some sample styles and how to guides. I for sure would pay for it and for all I have read on the net a lot of other people would too! /HW

Thursday, 4 Sep 2008 05:19 by
salvager coinciding indexed exhausting Odessa surrendered displaces

Wednesday, 26 Nov 2008 03:56 by rüya tabiri
thank you..

Monday, 29 Dec 2008 06:45 by games secret
thanks you::)

Saturday, 3 Jan 2009 11:00 by Chat
thank you

Thursday, 5 Mar 2009 02:55 by sohbet odalari
thank you very muuch

Friday, 6 Mar 2009 08:13 by güzel sözler
thank you:)

Friday, 6 Mar 2009 09:08 by Sohbet
thanks you

Thursday, 12 Mar 2009 09:38 by Chat
thank you very much.

Saturday, 14 Mar 2009 08:36 by granit
Thank You...

Wednesday, 18 Mar 2009 06:11 by Ligtv izle
thank you cano

Monday, 23 Mar 2009 12:30 by Mynet
thank you kanka

Monday, 23 Mar 2009 10:55 by Sarki dinle
seoking ft erkan

Monday, 23 Mar 2009 10:59 by Estetik
thank you kral eywallah

Saturday, 28 Mar 2009 10:54 by maç izle
thank you canim

Sunday, 5 Apr 2009 10:01 by ligtv izle
you are my desire..

Saturday, 11 Apr 2009 06:15 by chat
thank you

Sunday, 12 Apr 2009 01:37 by justin tv
thanks for this great article.

Friday, 17 Apr 2009 08:53 by lig tv
i've shared this article with all my friends. thanks!

Saturday, 18 Apr 2009 06:01 by ligtv izle
thank you

Sunday, 19 Apr 2009 01:42 by betsson24
i've loved this article!

Thursday, 23 Apr 2009 03:21 by deryalı günler
it's such a great article.

Monday, 27 Apr 2009 11:43 by Muhabbet
Thanks

Monday, 27 Apr 2009 09:20 by chat odaları
thanks

Tuesday, 28 Apr 2009 06:23 by derya baykal
good article.

Sunday, 3 May 2009 03:37 by sohbet
thanbk

Monday, 4 May 2009 12:22 by justin tv
turkish justin tv..

Thursday, 14 May 2009 10:36 by Sohbet Chat Aşk Sevgi Arkadaşlık
Thanks... http://www.FoxChat.Gen.Tr

Friday, 22 May 2009 02:02 by lig tv izle
thank you

Wednesday, 17 Jun 2009 03:12 by dantel örnekleri
it's such a great article. i've shared this with my friends!

Thursday, 25 Jun 2009 04:36 by dantel
thanks for this great article.

Friday, 3 Jul 2009 07:22 by sohbet
Very cool app. Can you tell me where to download the Help files? Apparently they didn’t make it during the install process, so it won’t load them. Thanks!

Monday, 6 Jul 2009 07:37 by blog
thanks very nice..

Tuesday, 7 Jul 2009 06:15 by palle hansen
Our website is a pure Moss 2007 website build with webparts

Wednesday, 8 Jul 2009 02:49 by Chad Haukoos
ojUtDR it�s nice post, specially newbie like me,

Wednesday, 8 Jul 2009 02:49 by Fran Matlock
Thanks I�ll give that a go!,

Wednesday, 8 Jul 2009 02:49 by boontam saengoy
Hi! The post is really interesting! I�ve read your blog and can say it�s a good job.thanks,

Wednesday, 8 Jul 2009 02:50 by michael crone
Don�t you think he is a little late for the game?,

Wednesday, 8 Jul 2009 03:28 by islami chat
thank you very much my friends..

Wednesday, 8 Jul 2009 09:47 by Brenda Bradshaw
sEFGQo Hi! The post is really interesting! I�ve read your blog and can say it�s a good job.thanks,

Wednesday, 8 Jul 2009 09:48 by Michelle Elli
Oh hell yeah� no graphical smilies around here.,

Thursday, 9 Jul 2009 11:09 by janet yanchak
8FOQjv Thanks for your insights � I couldn�t agree more.,

Thursday, 9 Jul 2009 11:11 by MIKE HENLY
Great work �. Thanks for your ideas.,

Thursday, 9 Jul 2009 11:11 by charlie lyons
it�s nice post, specially newbie like me,

Thursday, 9 Jul 2009 11:11 by Barry Spradling
Great work �. Thanks for your ideas.,

Friday, 10 Jul 2009 05:39 by Jared Stevens
txh3QP Don�t you think he is a little late for the game?,

Friday, 10 Jul 2009 05:40 by Renee Reda
it�s nice post, specially newbie like me,

Monday, 13 Jul 2009 06:10 by barretvant
pe2IJj Hi! The post is really interesting! I�ve read your blog and can say it�s a good job.thanks,

Monday, 13 Jul 2009 06:11 by tiger woods
Great work �. Thanks for your ideas.,

Monday, 13 Jul 2009 06:11 by terry moore
Hi! The post is really interesting! I�ve read your blog and can say it�s a good job.thanks,

Monday, 13 Jul 2009 06:11 by Adam Davison
Don�t you think he is a little late for the game?,

Monday, 13 Jul 2009 06:12 by AnaI Trejo
Don�t you think he is a little late for the game?,

Monday, 13 Jul 2009 06:12 by Delores Coleman
Great work �. Thanks for your ideas.,

Friday, 24 Jul 2009 09:28 by etiket
grateful to you for this great content.

Thursday, 30 Jul 2009 06:59 by Vincent Crawford
Good Thank you It�s very beautifully,

Thursday, 30 Jul 2009 06:59 by Robert Marques
Thanks I�ll give that a go!,

Thursday, 30 Jul 2009 06:59 by Brian Atwood
nice job, very thanks�,

Thursday, 30 Jul 2009 06:59 by John jones
Hi! The post is really interesting! I�ve read your blog and can say it�s a good job.thanks,

Thursday, 30 Jul 2009 06:59 by Charles Riley
Oh hell yeah� no graphical smilies around here.,

Thursday, 30 Jul 2009 07:01 by jorge carrillo
Thanks I�ll give that a go!,

Thursday, 30 Jul 2009 07:01 by Thomas Gopp
Thanks for your insights � I couldn�t agree more.,

Thursday, 30 Jul 2009 07:01 by Andrea Sharp
Thanks I�ll give that a go!,

Thursday, 30 Jul 2009 07:22 by Bryan Dorynek
Thanks for your insights � I couldn�t agree more.,

Thursday, 30 Jul 2009 07:23 by DAVID ROUGGLY
Very interesting!I�d like to see how far he goes and how well the word will get out.,

Thursday, 30 Jul 2009 07:23 by Scott Poinsett
Hi! The post is really interesting! I�ve read your blog and can say it�s a good job.thanks,

Thursday, 30 Jul 2009 07:24 by BuddyJ Smith
nice job, very thanks�,

Thursday, 30 Jul 2009 07:26 by barbara
Good Thank you It�s very beautifully,

Thursday, 30 Jul 2009 07:26 by Eric Robert
nice job, very thanks�,

Thursday, 30 Jul 2009 07:26 by ROSCOE CRABTREE
Don�t you think he is a little late for the game?,

Friday, 14 Aug 2009 02:20 by Dantel Örgü Oya
it's such a great article. i've shared this with my friends!

Thursday, 27 Aug 2009 11:17 by chat
Good Thank you It�s very beautifully,

Thursday, 27 Aug 2009 11:20 by chat
Hi! The post is really interesting! I�ve read your blog and can say it�s a good job.thanks...

Tuesday, 1 Sep 2009 03:30 by led ekran
Hello, no graphical smilies around here. Thank you.

Sunday, 13 Sep 2009 09:30 by Karel
Very helpful! Thank you

Monday, 14 Sep 2009 01:58 by betsson
The post is really interesting! Very helpful! Thank you

Monday, 14 Sep 2009 01:59 by betsson
The post is really interesting! Very helpful! Thank you

Sunday, 4 Oct 2009 08:19 by Chat Odaları
The post is really interesting! I�ve read your blog and can say it

Sunday, 4 Oct 2009 08:20 by istanbul chat odaları
Good Thank you It�s very beautifully.

Friday, 9 Oct 2009 01:07 by chat
chat rooms turkish thank you very much..

Saturday, 7 Nov 2009 05:54 by sikiş
thank you blog admin.

Sunday, 22 Nov 2009 02:28 by justin tv
thanks good room

Sunday, 22 Nov 2009 04:13 by konya chat
konya sohbet

Monday, 14 Dec 2009 06:57 by muzik dinle
thanks so much. greetings

Thursday, 24 Dec 2009 10:41 by parça kontor
thanks very good admin are you

Tuesday, 29 Dec 2009 12:54 by yemek tarifleri
thanks nice information

Thursday, 7 Jan 2010 05:10 by otel bilgileri
it's such a great article. i'll tell about this to all my friends as soon as possible. thanks for everything.

Monday, 11 Jan 2010 11:49 by canlı lig tv izle
it's like a good idea but there's nothing about effects.

Monday, 18 Jan 2010 01:00 by sağlık haberleri
i just wanted to thank you for this useful article and i'm glad to find this website. now i'm beginning to read your other articles. i hope we will live on well :)

Wednesday, 3 Feb 2010 01:17 by telefon modelleri
I strongly agree and have forwarded it to a number of associates who found it very useful, keep up the good work.



Url

Email

Comments