SharePoint Accessibility Resources

From Sanjay Narang’s Blog a list of resources for MOSS acessibility.

I’ve been working on implementing accessibility requirements for a public facing site on MOSS. Though keywords such as “SharePoint accessibility” provide a number of results on Live Search or any other engine, I had difficult time in searching the appropriate resources. Thought it would be worthwhile sharing the resources that I found and providing a context around them

This information complements and updates my articles on “building acessible sharepoint sites

http://techtalkpt.wordpress.com/2008/06/18/building-accessible-sharepoint-sites-part-1/

http://techtalkpt.wordpress.com/2008/08/07/building-accessible-sharepoint-sites-part-2/

You can find this post here.

Common Problem with Content Deployment: mixing incremental and full deployment

From Stefan Gossner blog a very important article on the diference between Full and Incremental deployment.

A common error I often see is that customers are mixing incremental and full deployment when deploying a site collection. E.g. use incremental deployment every day and full deployment once a week – just to be sure (maybe because they do not trust incremental?)

The problem is that incremental and full deployment do not deploy the same type of content. So the data on source and destination might no longer be the same.

You can find this article here.

Codeplex: SmartTools for Sharepoint

Jan Tielens has announced the SmartTools for Sharepoint that can be downloaded in Codeplex.

The SmartTools for SharePoint project is a collection of SharePoint extensions to make your life as a SharePoint user, developer or administrator a little bit easier!”

Tools available from the SmartTools:

  • What’s New: a customizable web part that can display a list of recently added or changed items of a SharePoint site or site collection
  • Autocomplete Text Field: a field that allows users to pick items from a list by making use of an AJAX autocomplete text box. See the Autocomplete Text Field in action: screencast
  • Enhanced Site Actions: adds extra menu items the the default Site Actions menu, for easy access to commonly used functions
  • Copy Paste: adds copy and paste functionality to Document Libraries
  • jQuery: integrates the jQuery JavaScript library with SharePoint 2007
  • TableRow Highlight: uses jQuery to highlight table rows when the mouse pointer is hovering above them
  • Dock Navigation: adds an overlay to every page of a site to allow users to navigate to the Lists and Document Libraries of that site
  • Charts: show animated Silverlight charts, based on data stored in SharePoint lists and document libraries

You can find these tools here.

Exporting a team site from a MOSS installation to a WSS installation

From the thekid blog an article on how to export a team site from MOSS to WSS.

I had developed a team site on a virtual machine with the intention to move it to a WSS install once it was ready. I planned on using STSADM -o export to achieve this.

Initially I had a problem exporting the site because of a feature I had created and then changed from being Site scoped (Web) to Site Collection scoped (Site). I received the following error…

FatalError: Failed to compare two elements in the array

 

You can find this article here.

Building accessible Sharepoint sites – Part 2

Part 1 – Building accessible Sharepoint sites – Part 1

Web Design

After the choice of the Template you have to work on the website design, demand that the Web Designer provides accessible design, this is very important because it will prevent, later in the project, some headaches in development and validation. There are a number of .NET Controls that are simply not accessible, and therefore they should be avoided , you can check a list of the ASP.NET controls and the Accessibility: http://msdn.microsoft.com/en-us/library/ms227996(VS.80).aspx.

Components to use or development

User Controls

The User Controls will be the most fast and controllable way to provide your client with what he wants, well it seems pretty stupid not to use the webparts of MOSS, but the problem with them is the way the HTML will be rendered, therefore if you cannot control it don’t use it.

To use User Controls in a MOSS site, you will have to be declare in the Web.Config as well as in the Masterpage.

Publishing Placeholders

These are an inheritance from the “old” CMS, fortunately the publishing placeholders are accessible and therefore can be used.

InLine Code the Holy Grail

Well we do know that the way MOSS renders the webparts and the web pages breaks accessibility, therefore if we had something that help us to override this render it would be perfect, because therefore we could mend the problems . . . guess what? it exists! we can use Inline code in MOSS and by doing so why not use it to control the way the HTML is rendered.

Some references of inline code:

To use Inline code you have to fist include in your web.config. in the PageParserPaths tag:

<PageParserPaths>
<PageParserPath VirtualPath=”/*” CompilationMode=”Always” AllowServerSideScript=”true” IncludeSubFolders=”true” />
</PageParserPaths>

In your ASPX page or Master page you then can use C# code in a script tag (<SCRIPT>) or Server side (<% %>). For example we want to replace a specific html tag that is not accessible and we cannot control:

<script type=”text/c#” runat=”server”>
protected override void Render(HtmlTextWriter writer)
{
// Getting all the html
System.IO.StringWriter str = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(str);
// rendering the html
base.Render(htw); //Getting the current page html
wrt.Close();
string html = str.ToString();
html = html.Replace(“SCRIPT”, “script”); //XHTML compliance will not accept upper-case
// write the ‘clean’ html to the page
writer.Write(html); //Writes the correct HTML
}
</script>

By using this method you can “clean” any problem that is presented by the rendering of HTML that you simply cannot control by any other means.

This article is intended to help you start on developing your accessible sites using MOSS, there seems to be a concern by Microsoft to include in the next versions more accessible solutions, to prevent all these “solutions” we have to build.

Part 1 – Building accessible Sharepoint sites – Part 1

Thoughts on Virtual Earth and Silverlight

I have been posting less because I’m involved in a number of projects, but nevertheless there is always the time to post from time to time.

In the last weeks i have been challenged  with developing some Virtual Earth and Silverlight solutions to MOSS. Well, we must start with the basics, what are they and what can we do with them . . . I will try to have this described in future postings, for now a quick review of what i done.

Virtual Earth

So I needed to have represented the Lisbon area and in it different zones and items in the zones, this is rather simple to do (if you have the coordinates of the areas and items), you can even build an XML to feed the bulk of information to place in the maps (I Will explain how in the specific posting to be done). Then I needed to identify different states of the Zones, by representing the icons (push pins or custom icons) with different colors, and different information. This must be done dynamically according with real-life status information, well it was a challenge.

Silverlight

In the Silverlight  i needed to enable the listing of documents from MOSS Libraries and to have the possibility of playing Flash and Videos. There are a lot of examples nowadays in the web and my task has been more smooth, thanks to all you guys that help the community with the correct examples.

To wrap up, these two technologies allow you to provide richer and better looking solutions to your projects, and they are not that hard to start with.

External Storing of Binary Large Objects (BLOBs) in Windows SharePoint Services

From the MSDN an article on External Storing of BLOBs in WSS.

Typically, as much as 80 percent of data for an enterprise-scale deployment of Windows SharePoint Server consists of file-based data streams that are stored as BLOB data. These BLOB objects comprise data associated with SharePoint files. However, maintaining large quantities of BLOB data in a Microsoft SQL Server database is a suboptimal use of SQL Server resources. You can achieve equal benefit at lower cost with equivalent efficiency by using an external data store to contain BLOB data.

You can find this article here.