<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Siolon &#187; User Interface</title>
	<atom:link href="http://www.siolon.com/blog/category/user-interface/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.siolon.com</link>
	<description>Musings on SharePoint, User Experience, and More</description>
	<lastBuildDate>Mon, 22 Apr 2013 17:32:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Removing and Replacing Default SharePoint Ribbon Styles</title>
		<link>http://www.siolon.com/blog/removing-and-replacing-default-sharepoint-ribbon-styles/</link>
		<comments>http://www.siolon.com/blog/removing-and-replacing-default-sharepoint-ribbon-styles/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 17:03:45 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[page layout]]></category>
		<category><![CDATA[ribbon]]></category>
		<category><![CDATA[styles]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=737</guid>
		<description><![CDATA[SharePoint 2010 (and most likely future versions) provides default styles in the ribbon. You can see these with the “Styles” and “Markup Styles” sections of the ribbon. Here is an example of the “Markup Styles” section in action. What if a client does not want the default ones in there? You could overwrite them in<span class="continue-reading"> <a href="http://www.siolon.com/blog/removing-and-replacing-default-sharepoint-ribbon-styles/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>SharePoint 2010 (and most likely future versions) provides default styles in the ribbon. You can see these with the “Styles” and “Markup Styles” sections of the ribbon. Here is an example of the “Markup Styles” section in action.</p>
<div id="attachment_738" class="wp-caption aligncenter" style="width: 249px"><a href="http://www.siolon.com/wp-content/uploads/markupstyles.png"><img src="http://www.siolon.com/wp-content/uploads/markupstyles.png" alt="Default Markup Styles" title="Default Markup Styles" width="239" height="117" class="size-full wp-image-738" /></a><p class="wp-caption-text">Default Markup Styles</p></div>
<p>What if a client does not want the default ones in there? You could overwrite them in CSS, but most likely your client will not want all of the default ones available. The way to change this is to use the PrefixStyleSheet attribute on the RichHtmlField in your page layout. Here is an example of it in action using the default column for publishing content. (This is also where you can disable other parts of the ribbon using attributes such as AllowFonts=“False” to turn off the font selection option in the ribbon.)</p>
<pre class="brush: xml; title: ; notranslate">&lt;PublishingWebControls:RichHtmlField PrefixStyleSheet=&quot;mystyle&quot;
FieldName=&quot;PublishingPageContent&quot; runat=&quot;server&quot;&gt;
&lt;/PublishingWebControls:RichHtmlField&gt;</pre>
<p>Changing the prefix for the custom styles will now remove them from the ribbon. Now using the following CSS, you can add selections to the “Styles” and “Markup Styles” section. (As a note, the default CSS prefix is “ms-rte”.)</p>
<pre class="brush: css; title: ; notranslate">/* Add to Styles Section */
.mystyleStyle-Bold   {
  -ms-name:&quot;Bold&quot;;
  font-weight: bold;
}
/* Add to Markup Styles Section */
h3.mystyleElement-Title   {
  -ms-name:&quot;Heading 3&quot;;
  font-size: 30px;
}</pre>
<p>Now you can see your custom styles in each dropdown. Notice that the “Markup Styles” styles necessitate an element on the selector.</p>
<div id="attachment_745" class="wp-caption aligncenter" style="width: 239px"><a href="http://www.siolon.com/wp-content/uploads/stylesafter.png"><img src="http://www.siolon.com/wp-content/uploads/stylesafter.png" alt="" title="Our New Markup Styles" width="229" height="117" class="size-full wp-image-745" /></a><p class="wp-caption-text">Our New Markup Styles</p></div>
<h3>Using Custom Styles in Content Editor Web Parts</h3>
<p>One of the caveats of this method is that it doesn’t work in content editor web parts. So, if a user were to try and add a content editor web part and edit the text, not only would they see the old default styles, but our custom ones would be gone. I thought that was just the way it would be until I found <a href="http://social.technet.microsoft.com/Forums/en-US/sharepoint2010customization/thread/4b991be3-b8f8-403f-b58e-d13adc1067f9">this post on the MSDN forums</a>. In it, someone shares a bit of jQuery that allows us a similiar behavior on the content editor web parts as the publishing HTML fields.</p>
<pre class="brush: jscript; title: ; notranslate">jQuery(document).ready(function ($) {
/* Enable custom stylesheet prefix for CEWP */
ExecuteOrDelayUntilScriptLoaded(function() {
   $(&quot;div[RteRedirect]&quot;).each(function() {
      var id = $(this).attr(&quot;RteRedirect&quot;),
      editSettings = $(&quot;#&quot; + id);
      if(editSettings.length &gt; 0 &amp;&amp; editSettings[0].PrefixStyleSheet != 'mystyles') {
         editSettings[0]['PrefixStyleSheet'] = 'mystyles';
      }
   });
}, &quot;sp.ribbon.js&quot;);
});</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/removing-and-replacing-default-sharepoint-ribbon-styles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using a DOCTYPE in SharePoint 2007</title>
		<link>http://www.siolon.com/blog/using-a-doctype-in-sharepoint-2007/</link>
		<comments>http://www.siolon.com/blog/using-a-doctype-in-sharepoint-2007/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 15:30:31 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[doctype]]></category>
		<category><![CDATA[master page]]></category>
		<category><![CDATA[moss]]></category>
		<category><![CDATA[publishing]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=727</guid>
		<description><![CDATA[While SharePoint 2007 certainly moved the platform forward for its time, there is no doubt that doing UI work with the CMS is nothing short of excruciating. The reason for this is (a) really, really bad markup and (b) no DOCTYPE (SharePoint Designer doesn’t help the cause either).  There is a lot you can do<span class="continue-reading"> <a href="http://www.siolon.com/blog/using-a-doctype-in-sharepoint-2007/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>While SharePoint 2007 certainly moved the platform forward for its time, there is no doubt that doing UI work with the CMS is nothing short of excruciating. The reason for this is (a) really, really bad markup and (b) no DOCTYPE (SharePoint Designer doesn’t help the cause either).  There is a lot you can do to deal with the first issue, but you’re largely stuck on the second.</p>
<p>The reason adding a DOCTYPE is problematic is because adding the DOCTYPE to the master page makes core functionality break like moving web parts between zones, and all the default styles are not made to work in browser’s standards mode. The best way to get around this would be for the DOCTYPE only to show when the page is in “display” mode but not in “edit” mode. (If you need to develop custom master pages for the “System Master Page” then I would not suggest using this solution because it will cause more heartache then it’s worth.)</p>
<p>To do this we need to include a content placeholder at the top of the master page. </p>
<pre class="brush: xml; title: ; notranslate">&lt;asp:ContentPlaceHolder id=&quot;DoctypePanel&quot; runat=&quot;server&quot; /&gt;</pre>
<p>Then, in our layouts, we can include the following EditModePanel that will only output what we have in display mode. Keep in mind that all attributes are necessary to include. It would be nice if we could just include the code block belowin the master page, but it doesn’t work (I presume because it isn’t in the form tag).</p>
<pre class="brush: xml; title: ; notranslate">&lt;asp:Content ContentPlaceholderID=&quot;DoctypePanel&quot; runat=&quot;server&quot;&gt;

&lt;PublishingWebControls:editmodepanel PageDisplayMode=&quot;Display&quot; SuppressTag=&quot;True&quot; 
runat=&quot;server&quot; id=&quot;doctypeedit&quot;&gt;

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;

&lt;/PublishingWebControls:editmodepanel&gt;

&lt;/asp:Content&gt;</pre>
<p>Add this CSS to fix alignment on the site actions menu.</p>
<pre class="brush: css; title: ; notranslate">
.ms-MenuUILabel {
	text-align: left;
}</pre>
<p>Thanks to <a href="http://www.linkedin.com/in/cfernand">Carlos Fernandez</a> for working through this with me.</p>
<p><strong>UPDATE:</strong> Turns out I needed an addition content placeholder to include the <a href="http://acidmartin.wordpress.com/2009/03/21/using-the-ie8-x-ua-compatibility-meta-tag/">X-UA Compatibility Meta Tag</a>. If  I didn’t include it I had issues with the browser mode changing effectively. You can’t reuse the same content placeholder because the meta tag belongs in the head.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/using-a-doctype-in-sharepoint-2007/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Advanced Metadata Techniques in Page Layouts</title>
		<link>http://www.siolon.com/blog/advanced-metadata-techniques-in-page-layouts/</link>
		<comments>http://www.siolon.com/blog/advanced-metadata-techniques-in-page-layouts/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 18:30:37 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[page layout]]></category>
		<category><![CDATA[publishing]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=693</guid>
		<description><![CDATA[When SharePoint unveiled their web content management functionality in 2007, they included the practice on inline editing directly into the content management experience. While they were by no means the first to do so, I feel strongly that they did a very good job considering it was their first iteration of the technology. User interface<span class="continue-reading"> <a href="http://www.siolon.com/blog/advanced-metadata-techniques-in-page-layouts/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>When SharePoint unveiled their web content management functionality in 2007, they included the practice on inline editing directly into the content management experience. While they were by no means the first to do so, I feel strongly that they did a very good job considering it was their first iteration of the technology. User interface developers creating page layouts can very easily integrate the editing of metadata directly into a page layout very easily by dragging columns from the “Page Content” section in the toolbox panel of SharePoint Designer. But what if we have some more advanced layouts, and when we try to add metadata into the editing experience? It actually makes the editing experience much less attractive.</p>
<p>Case in point, here is an event page layout for the new Portal Solutions site built in 2010 (the methods described in this post will work in 2007, but all sample code is tested in 2010). As you can see, I have a section that highlights details about the event, and this section is a smaller, floated column on the right. Dragging the columns from the toolbox into the page layout produces a rather ugly content management experience.</p>
<div id="attachment_695" class="wp-caption aligncenter" style="width: 287px"><a href="http://www.siolon.com/wp-content/uploads/PageMetadata2.jpg"><img class="size-medium wp-image-695 " title="A Rather Ugly Experience" src="http://www.siolon.com/wp-content/uploads/PageMetadata2-277x300.jpg" alt="A picture of an unoptimized page layout editing experience" width="277" height="300" /></a><p class="wp-caption-text">A Rather Ugly Experience</p></div>
<p>The forms that are added inline throw off the layout. You can also notice that I also have a styled button, and putting this page into edit mode actually makes that metadata column incomprehensible. Clearly, we need a better solution.</p>
<h3>Using the Read-Only Metadata Value Control</h3>
<p>Thankfully the platform provides us some tags that allow us to change how this works. Instead of using a single control that does both the edit mode and display mode we can split the two. Here is what the code looks like when I simply drag and drop the column from the toolbox (this is the address column which actually OTB).</p>
<pre class="brush: xml; title: ; notranslate">&lt;SharePointWebControls:NoteField FieldName=&quot;fc2e189e-ba91-48c9-9dd3-16531afddd50&quot;
   runat=&quot;server&quot;&gt;&lt;/SharePointWebControls:NoteField&gt;</pre>
<p>What this control does is in display mode it only pulls the value of the column, but in edit mode it adds the form to support editing the value. We need the ability to separate the two display modes to make for a better experience, and I will show you how.</p>
<p>But first let me direct your attention to that nasty GUID in the snippet above. That comes from SharePoint Designer 2010 by default, and what we really want to use there in the FieldName attribute is not the GUID but the internal name for the column (in SP Designer 2007 it correctly pulls the internal name). While this code might work for a one-off, it certainly won’t work in a scenario where we need to publish these page layouts particularly in a feature deployment. If you didn’t create the column with a feature you can find the internal name by simply opening up the column in edit mode inside the UI (Site Settings » Site Columns » Your Column Name), and in the title bar it will tell you the internal name after the ?field= in the URL (be sure if you create the name in the UI to keep the column name all one word when first creating, and then you can go back and add spaces).</p>
<div id="attachment_701" class="wp-caption aligncenter" style="width: 172px"><a href="http://www.siolon.com/wp-content/uploads/PageMetadata2.png"><img class="size-full wp-image-701" title="The Column's Internal Name" src="http://www.siolon.com/wp-content/uploads/PageMetadata2.png" alt="A screenshot of finding the internal name for a column." width="162" height="65" /></a><p class="wp-caption-text">The Column’s Internal Name</p></div>
<p>Now let’s look at a special control that only pulls the value from a column, and even when it’s in edit mode it doesn’t show a form. This truly is a column in read-only mode. This snippet uses the same address column.</p>
<pre class="brush: xml; title: ; notranslate">&lt;SharePointWebControls:FieldValue id=&quot;WorkAddress&quot; FieldName=&quot;WorkAddress&quot;
   runat=&quot;server&quot;&gt;&lt;/SharePointWebControls:FieldValue&gt;</pre>
<p>This is much better! Technically, the ID can be whatever you want, but be sure to coordinate to with a developer if they are working with this in any way and need to know the ID. I usually keep the ID and the FieldName the same, but that is at your discretion. Now let’s replace all the columns with this read-only control and see what this looks like in edit mode.</p>
<div id="attachment_705" class="wp-caption aligncenter" style="width: 260px"><a href="http://www.siolon.com/wp-content/uploads/PageMetadata.jpg"><img class="size-full wp-image-705" title="A Much Better Appearance" src="http://www.siolon.com/wp-content/uploads/PageMetadata.jpg" alt="A screenshot depicting column values pulled with read-only access." width="250" height="221" /></a><p class="wp-caption-text">A Much Better Appearance</p></div>
<h3>Adding Back in the Editing Experience</h3>
<p>This is looking good, but we still want the ability to edit the values for these columns inline. To do this I add a section at the bottom of the page dedicated to editing metadata. I still keep the rich HTML fields (Publishing Page Content) in the page where they display (if I’m using it), but I move all other columns down below (and sometimes depending on the situation I even put publishing HTML fields in this metadata zone as well). To accomplish this we are going to use the EditModePanel control from the same toolbox panel (in the SharePoint Controls » Server Controls section) to add content into the page that only displays when the page is in edit mode.</p>
<pre class="brush: xml; title: ; notranslate">&lt;PublishingWebControls:EditModePanel runat=&quot;server&quot; id=&quot;PageMetadata&quot;&gt;

&lt;div class=&quot;pagemetadata&quot;&gt;

&lt;h4&gt;Edit Page Metadata&lt;/h4&gt;

&lt;SharePointWebControls:TextField FieldName=&quot;Title&quot; runat=&quot;server&quot;&gt;&lt;/SharePointWebControls:TextField&gt;
&lt;SharePointWebControls:DateTimeField FieldName=&quot;EventStartDate&quot; runat=&quot;server&quot;&gt;&lt;/SharePointWebControls:DateTimeField&gt;
&lt;SharePointWebControls:DateTimeField FieldName=&quot;EventEndDate&quot; runat=&quot;server&quot;&gt;&lt;/SharePointWebControls:DateTimeField&gt;
&lt;Taxonomy:TaxonomyFieldControl FieldName=&quot;EventType&quot; runat=&quot;server&quot;&gt;&lt;/Taxonomy:TaxonomyFieldControl&gt;
&lt;SharePointWebControls:UrlField FieldName=&quot;RegisterLink&quot; runat=&quot;server&quot;&gt;&lt;/SharePointWebControls:UrlField&gt;
&lt;SharePointWebControls:NoteField FieldName=&quot;WorkAddress&quot; runat=&quot;server&quot;&gt;&lt;/SharePointWebControls:NoteField&gt;
&lt;link href=&quot;/_layouts/1033/styles/Themable/forms.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;

&lt;/div&gt;

&lt;/PublishingWebControls:EditModePanel&gt;</pre>
<p>This will allow the content contributor to have a much more streamlined experience particularly in pages where you have a significant amount of metadata you want to offer to edit inline. The column controls I’m using above are similar to the ones provided by the toolbox (with the GUIDs replaced with internal names), but with the EditModePanel it only shows the form layout to edit when the user asks for it in a much better layout.</p>
<p>The one thing to notice is the inclusion of a SharePoint stylesheet that styles the HTML from the controls added when the page is in edit mode. I noticed sometimes the stylesheet didn’t come through, so to alleviate I just included it. It only renders when in edit mode so it’s not an unnecessary HTTP request for viewing content only, and even if it is already included it shouldn’t cause you a styling issue unless you want to overwrite these form styles (in that case remove that reference above).</p>
<p>Here is what the edit metadata zone looks like in edit mode which I put under the page content. I didn’t do much with it style-wise in this screenshot, but you could add some nice touches depending on your desires or needs.</p>
<div id="attachment_707" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.siolon.com/wp-content/uploads/PageMetadata4.png"><img class="size-medium wp-image-707" title="The Dedicated Metadata Editing Area" src="http://www.siolon.com/wp-content/uploads/PageMetadata4-300x213.png" alt="A screenshot showing editing metadata in edit mode." width="300" height="213" /></a><p class="wp-caption-text">The Dedicated Metadata Editing Area</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/advanced-metadata-techniques-in-page-layouts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding the Top-Level Site Title as a Navigational Aid</title>
		<link>http://www.siolon.com/blog/adding-the-top-level-site-title-as-a-navigational-aid/</link>
		<comments>http://www.siolon.com/blog/adding-the-top-level-site-title-as-a-navigational-aid/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 17:58:40 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[navigation]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=651</guid>
		<description><![CDATA[I’ve had an interesting requirement show up in the last few projects. All of them were public-facing, and they wanted to have a navigational aid above the quick launch to show the top-level site title. In other words, if the site is contained within a top-level site called “What We Know,” then above the quick<span class="continue-reading"> <a href="http://www.siolon.com/blog/adding-the-top-level-site-title-as-a-navigational-aid/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>I’ve had an interesting requirement show up in the last few projects. All of them were public-facing, and they wanted to have a navigational aid above the quick launch to show the top-level site title. In other words, if the site is contained within a top-level site called “What We Know,” then above the quick launch that text will show up to aid give the user an additional aid in understanding what section of the site they are in.</p>
<div id="attachment_652" class="wp-caption aligncenter" style="width: 496px"><a href="http://www.siolon.com/wp-content/uploads/site_title_above_ql.png"><img class="size-full wp-image-652" title="Site Title Above Quick Launch" src="http://www.siolon.com/wp-content/uploads/site_title_above_ql.png" alt="" width="486" height="128" /></a><p class="wp-caption-text">Site Title Above Quick Launch</p></div>
<p>I had no idea how to accomplish this so I reached out to my talented co-worker at Portal Solutions Carlos Fernandez. Carlos was able to give me an interesting and reusable solution I’d like to share. I take no credit for this code. I modified a part of the jQuery to pull in the anchor, but the approach and everything else was his work.</p>
<h3>Including a Custom AspMenu</h3>
<p>The first thing that has to happen is including another instance of the ASP.NET AspMenu control, but it uses a custom sitemap provider with custom attributes. Notice that it has a custom SiteMapProvider, and it has a StartingNodeOffset value. I also use the SharePoint:ProjectProperty control to give the title and URL of the root site; the reason for this is that the AspMenu renders nothing in the root site since it’s using an offset.</p>
<pre class="brush: csharp; title: ; notranslate">
&lt;span id=&quot;siteTitleValue&quot; style=&quot;display:none;&quot;&gt;
 &lt;PublishingNavigation:PortalSiteMapDataSource
	ID=&quot;SiteTitleDS&quot;
	runat=&quot;server&quot;
	EnableViewState=&quot;false&quot;
	SiteMapProvider=&quot;CombinedNavSiteMapProvider&quot;
	StartFromCurrentNode=&quot;false&quot;
	StartingNodeOffset=&quot;1&quot;
	ShowStartingNode=&quot;true&quot;
	TrimNonCurrentTypes=&quot;Heading&quot;&gt;
  &lt;/PublishingNavigation:PortalSiteMapDataSource&gt;
  &lt;SharePoint:AspMenu
	ID=&quot;SiteTitleNav&quot;
	runat=&quot;server&quot;
	EnableViewState=&quot;false&quot;
	DataSourceID=&quot;SiteTitleDS&quot;
	UseSeparateCSS=&quot;false&quot;
	UseSimpleRendering=&quot;true&quot;
	Orientation=&quot;Vertical&quot;
	StaticDisplayLevels=&quot;1&quot;
	MaximumDynamicDisplayLevels=&quot;0&quot;
        CssClass=&quot;&quot;
	SkipLinkText=&quot;&lt;%$Resources:cms,masterpages_skiplinktext%&gt;&quot;&gt;
  &lt;/SharePoint:AspMenu&gt;
&lt;/span&gt;
&lt;span id=&quot;rootSiteTitle&quot; style=&quot;display: none&quot;&gt;
	&lt;SharePoint:ProjectProperty Property=&quot;Title&quot; runat=&quot;server&quot; /&gt;
&lt;/span&gt;
&lt;span id=&quot;rootSiteUrl&quot; style=&quot;display: none&quot;&gt;
	&lt;SharePoint:ProjectProperty Property=&quot;Url&quot; runat=&quot;server&quot; /&gt;
&lt;/span&gt;</pre>
<h3>Using jQuery to Surface the Title</h3>
<p>Using jQuery we can pull the top-level site title that the subsite is contained in and display it in custom HTML without all the HTML from the AspMenu. First is the HTML you used to embed it in the desired location. This uses a heading one which if you use that element elsewhere you might want to downgrade the header (as a semantic best practice you keep a single h1).</p>
<pre class="brush: xml; title: ; notranslate">
&lt;h1 class=&quot;siteTitleDisplay s4-notdlg&quot;&gt;&lt;/h1&gt;
</pre>
<p>Here is one example where you don’t need the title to be an anchor. Notice how the PrepareDisplayValue function deals with the root site, because as mentioned above the menu doesn’t render anything for the root site.</p>
<pre class="brush: jscript; title: ; notranslate">
jQuery(document).ready(function ($) {
var titleText = $.trim( $(&quot;#siteTitleValue .menu-item-text&quot;).text() );
$(&quot;.siteTitleDisplay&quot;).html(PrepareDisplayValue(titleText));
function PrepareDisplayValue(titleText) {
	if (titleText.length == 0) {
		var titleText = $(&quot;#rootSiteTitle&quot;).text();
			return titleText;
		}
	else {
		return titleText;
	}
}
});
</pre>
<p>If you want to include the anchor to the top-level site you can use the following jQuery snippet.</p>
<pre class="brush: jscript; title: ; notranslate">
jQuery(document).ready(function ($) {
var titleText = $.trim( $(&quot;#siteTitleValue .menu-item-text&quot;).text() );
var titleURL = $(&quot;#siteTitleValue a.menu-item&quot;).attr(&quot;href&quot;);
$(&quot;.siteTitleDisplay&quot;).append(&quot;&lt;a href='&quot; + PrepareUrlValue(titleURL) + &quot;'&gt;&quot; + PrepareDisplayValue(titleText) + &quot;&lt;/a&gt;&quot;);
function PrepareDisplayValue(titleText) {
	if (titleText.length == 0) {
		var titleText = $(&quot;#rootSiteTitle&quot;).text();
		return titleText;
	}
	else {
		return titleText;
	}
}
function PrepareUrlValue(titleURL) {
	 if (titleURL == undefined) {
		var titleURL= $(&quot;#rootSiteUrl&quot;).text();
		return titleURL;
	}
	else {
		return titleURL;
	}
}
});
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/adding-the-top-level-site-title-as-a-navigational-aid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Default Header and Navigation on My Sites and Search Center</title>
		<link>http://www.siolon.com/blog/default-header-and-navigation-on-mysite-and-search-center/</link>
		<comments>http://www.siolon.com/blog/default-header-and-navigation-on-mysite-and-search-center/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 19:22:53 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[master page]]></category>
		<category><![CDATA[my sites]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=582</guid>
		<description><![CDATA[For reasons unbeknownst to me and other SharePoint practitioners the Microsoft team decided not to include the site collection navigation as well as the large header above it (contains site logo, title and description as well as the social buttons) in My Sites and the enterprise search center. I’m not going to go on about<span class="continue-reading"> <a href="http://www.siolon.com/blog/default-header-and-navigation-on-mysite-and-search-center/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>For reasons unbeknownst to me and other SharePoint practitioners the Microsoft team decided not to include the site collection navigation as well as the large header above it (contains site logo, title and description as well as the social buttons) in My Sites and the enterprise search center. I’m not going to go on about why I think this was a poor decision, but I wanted to provide you with master pages for both that establish consistency.</p>
<p>The process was simple. I just had to find the code that created the header and navigation and include it in the out-of-the-box master pages for My Sites and the search center (called mysite.master and minimal.master respectively). The search center will then look exactly like v4.master in the header region. The My Site master page has the custom bar above the ribbon, and you’ll notice the site collection title, site title and description are not in the header. The reason for that is that the mysite.master uses those placeholders elsewhere in the master page. For the sake of sticking with the out-of-the-box design I’ve kept the content placeholders where they were designated in mysite.master.</p>
<p>You can then add your custom CSS and JavaScript to the master page as well as any other changes you wish to do. It will at least give you a start on interface consistency between the three major aspects of the SharePoint interface. The ZIP file contains both master pages including a text file with the code I placed into each of the master pages for reference.</p>
<p><a href="http://www.siolon.com/wp-content/files/MasterPagesWithHeader.zip">Download Master Pages</a></p>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">unbeknownst</div>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/default-header-and-navigation-on-mysite-and-search-center/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hiding the SharePoint Ribbon from Anonymous Users</title>
		<link>http://www.siolon.com/blog/hiding-the-sharepoint-ribbon-from-anonymous-users/</link>
		<comments>http://www.siolon.com/blog/hiding-the-sharepoint-ribbon-from-anonymous-users/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 18:30:11 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[anonymous]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[scrollbar]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=510</guid>
		<description><![CDATA[Working on a couple of public-facing 2010 sites hiding the ribbon has become an issue in each of them (I’ve noticed several public-facing 2010 sites that don’t hide the ribbon, but that’s not an option if you want a clean brand). Searching for the solutions turned up a couple of solutions, but neither solution in<span class="continue-reading"> <a href="http://www.siolon.com/blog/hiding-the-sharepoint-ribbon-from-anonymous-users/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>Working on a couple of public-facing 2010 sites hiding the ribbon has become an issue in each of them (I’ve noticed several public-facing 2010 sites that don’t hide the ribbon, but that’s not an option if you want a clean brand). Searching for the solutions turned up a couple of solutions, but neither solution in itself turned out to be the best option.</p>
<p>Searching I found <a href="http://social.technet.microsoft.com/Forums/en-US/sharepoint2010customization/thread/1f041be1-c846-464d-956b-fc70e6cd191e">this Technet forum post</a>. In that solution it is a complete CSS solution using a control detecting anonymous and logged-in users. This solution works just fine, but I wasn’t happy with simply hiding the ribbon. If I didn’t need the ribbon why waste all that load time and HTTP requests to load it only to hide it?</p>
<p>This led me to look for another solution, and <a href="http://www.topsharepoint.com/hide-the-ribbon-from-anonymous-users/">I found another one</a> that used security trimmed controls to not load the ribbon if not logged in. This was great! I was excited until I logged out to test, and I then realized the vertical scrollbar was hidden. The reason for this is because SharePoint 2010 hides the vertical scrollbar and adds in a custom scrollbar to stick the ribbon to the top. When you hide the ribbon the scrollbar doesn’t show because SharePoint uses overflow: hidden; in CSS for the body so it can handle the scrollbar.</p>
<h3>The Hybrid Approach</h3>
<p>This led to take both of them to construct the best solution. I used the security trimmed control to hide the ribbon, and then I used the control from the forum post and modified the CSS to handle the scrollbar. Here are the steps combining both of the solutions and including my addition.</p>
<p>1. Add the following before the start of the ribbon.</p>
<pre class="brush: xml; title: ; notranslate">&lt;Sharepoint:SPSecurityTrimmedControl runat=&quot;server&quot; Permissions=&quot;AddDelPrivateWebParts&quot;&gt;</pre>
<p>The ribbon starts with the following HTML.</p>
<pre class="brush: xml; title: ; notranslate">&lt;div id=&quot;s4-ribbonrow&quot;&gt;</pre>
<p>2. Then close the security trimmed control at the end of the ribbon. It should look like the following.</p>
<pre class="brush: xml; title: ; notranslate">&lt;Triggers&gt;
 &lt;asp:PostBackTrigger ControlID=&quot;WebPartAdder&quot; /&gt;
 &lt;/Triggers&gt;
 &lt;/asp:UpdatePanel&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;/SharePoint:SPSecurityTrimmedControl&gt;</pre>
<p>3. Add the following outside of the security trimmed control (I put it before, but it doesn’t matter). You’ll notice now the body is set to scroll on overflow, and since it’s on the page it will trump the SharePoint style due to the cascade.</p>
<pre class="brush: xml; title: ; notranslate">&lt;asp:LoginView id=&quot;LoginView&quot; runat=&quot;server&quot;&gt;
 &lt;AnonymousTemplate&gt;
 &lt;style type=&quot;text/css&quot;&gt;
 body { overflow-y: scroll !important; overflow-x: hidden; }
 body #s4-workspace { overflow-x: hidden; overflow-y: auto !important; }
 &lt;/style&gt;
 &lt;!--[if lte IE 7]&gt;
 &lt;style type=&quot;text/css&quot;&gt;
 html { overflow: auto !important; overflow-x: hidden; }
 body { overflow: auto !important; }
 &lt;/style&gt;
 &lt;![endif]--&gt;
 &lt;/AnonymousTemplate&gt;
&lt;/asp:LoginView&gt;</pre>
<p>Note: This supports IE 6 <em>kind of</em>. It will give a vertical scrollbar, but another one is also added. If I’m forced to find another solution I’ll post it, but I’m sick of IE 6.</p>
<p>This also fixes scrolling on iOS devices as well which don’t take kindly to the way SharePoint 2010 does scrolling by default. Hiding the ribbon alleviates the problem and returns one-finger scrolling.</p>
<p><strong>UPDATE:</strong> I realized while implementing this for a client that the permissions level to keep the ribbon from loading was too high. I have since changed the permission level from ManageLists to AddDelPrivateWebParts (a role on the OTB contribute group, because why would you have read only users authenticate?). If you use a custom role be sure to match the lowest authenticated user to a role in this <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx">list on MSDN</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/hiding-the-sharepoint-ribbon-from-anonymous-users/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 Wireframes</title>
		<link>http://www.siolon.com/blog/sharepoint-2010-wireframes/</link>
		<comments>http://www.siolon.com/blog/sharepoint-2010-wireframes/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 20:59:16 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[deliverable]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[visio]]></category>
		<category><![CDATA[wireframe]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=504</guid>
		<description><![CDATA[Another version of SharePoint is on us, and the need for the vital excercise of wireframes still exists. I created wireframes for MOSS, and now I have added new wireframes for 2010. If you search for SharePoint 2010 wireframes you’ll find a blog post, but those aren’t really true wireframes in the low-fidelity sense (they’re<span class="continue-reading"> <a href="http://www.siolon.com/blog/sharepoint-2010-wireframes/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>Another version of SharePoint is on us, and the need for the vital excercise of wireframes still exists. I created <a href="http://www.siolon.com/blog/sharepoint-wireframes/">wireframes for MOSS</a>, and now I have added new wireframes for 2010. If you search for SharePoint 2010 wireframes you’ll <a href="http://erikswenson.blogspot.com/2010/06/sharepoint-2010-ia-wireframe-toolkit.html">find a blog post</a>, but those aren’t really true wireframes in the low-fidelity sense (they’re closer to full comps); and he’s not releasing them publicly anyway. I am a fan of very low-fidelity wireframes, and Visio is one of the better tools to do this in.</p>
<p>There are two wireframes: one is for a team site template, and the other is for My Sites. I did not create a publishing site one, because if you’re doing wireframe activities for a publishing site most likely you’re starting over on your interface. You can however use parts from the team site one when building it if you wish. The SharePoint Foundation and Server 2010 team sites are the same so you can use the same wireframe.</p>
<p>They are provided in a Visio format and PDF. I have created them in Visio 2010 and assume they will work in older versions of Visio; please let me know if they do not. I also once again made use of the (updated) <a href="http://www.guuui.com/issues/02_07.php">GUUUI Visio stencil kit</a>.</p>
<ul>
<li><a href="http://www.siolon.com/wp-content/uploads/wireframes/SharePoint_2010_Team_Site.vsd">SharePoint 2010 Team Site Wireframe (Visio)</a></li>
<li><a href="http://www.siolon.com/wp-content/uploads/wireframes/SharePoint_2010_Team_Site.pdf">SharePoint 2010 Team Site Wireframe (PDF)</a></li>
<li><a href="http://www.siolon.com/wp-content/uploads/wireframes/SharePoint_2010_My_Site.vsd">SharePoint 2010 My Site Wireframe (Visio)</a></li>
<li><a href="http://www.siolon.com/wp-content/uploads/wireframes/SharePoint_2010_My_Site.pdf">SharePoint 2010 My Site Wireframe (PDF)</a></li>
</ul>
<p>UPDATE: A commenter below has linked to some <a href="http://tuney.blogspot.com/2011/03/sharepoint2010-balsamiq-wireframes.html">Balsamiq templates </a>if you use that application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/sharepoint-2010-wireframes/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Making DHTML Menus Suck Less</title>
		<link>http://www.siolon.com/blog/making-dhtml-menus-suck-less/</link>
		<comments>http://www.siolon.com/blog/making-dhtml-menus-suck-less/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 01:41:39 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[dhtml]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[menus]]></category>
		<category><![CDATA[navigation]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=456</guid>
		<description><![CDATA[There are designers on both sides of the DHTML menu issue. Some are liberal to use them and have no issue with them, and there are others (including myself) who think it’s not the ideal solution to a navigational structure. Navigation is unquestionably the most important part of any web application, and if it is<span class="continue-reading"> <a href="http://www.siolon.com/blog/making-dhtml-menus-suck-less/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>There are designers on both sides of the DHTML menu issue. Some are liberal to use them and have no issue with them, and there are others (including myself) who think it’s not the ideal solution to a navigational structure. Navigation is unquestionably the most important part of any web application, and if it is poorly implemented it makes your application unusable and, more often than not, no one will use it.</p>
<p>I think most DHTML menus are simply a band-aid for poorly conceived information architectures. There also is this idea that has stuck for the last decade that everything should be “within three clicks” as if have four clicks suddenly means the application is less usable. In truth <a href="http://www.steptwo.com.au/papers/cb_threeclicks/index.html">it is a myth</a>: “The reality is that users have no problem with clicking, as long as they are confident they’re heading in the right direction.” Since most of the time designers simply use existing complex information architectures instead of honing and refining them they default to DHTML to expose all of their site structure.</p>
<p>Let’s look at of the reasons that DHTML menus suck, and I will elaborate on several below:</p>
<ul>
<li>As mentioned, often times DHTML menus are used to hide bad information architectures.</li>
<li>Many DHTML menus have no visual indication that there is a menu beneath it.</li>
<li>Users become frustrated when they have to follow a complex path for a sensitive menu.</li>
<li>Navigating by a keyboard loses its luster when using DHTML.</li>
<li>DHTML menus are often not built with the ability to designate where the user is at in the site structure.</li>
<li>These menus are often inadvertently activated by a browsing user leading to a jarring experience.</li>
<li>Even though this is less of a problem then it was even five years ago many DHTML menus use horrendous markup, inline styles, and inline behaviors that fail to degrade gracefully.</li>
<li>Some DHTML events, such as onmouseover, are becoming obsolete with the rise of multitouch devices.</li>
</ul>
<h3>DHTML Menus and Information Architecture</h3>
<p>Before deciding that a DHTML is the way to go most designers don’t want to work a client through a process of investigating the information architecture to see if the application even needs the DHTML. Do you really need three different levels in your menu? Have you done a proper card sorting exercise to determine the ideal labels and structure for your navigation? Can you implement secondary navigation on pages that will compliment a more global navigational structure instead of having to expose all that content in a single menu? These are some of the questions to consider if your application truly needs the DHTML.</p>
<h3>DHTML Menus and Indicators</h3>
<p>I am literally amazed at the amount of sites I visit that fail to use any kind of indicator in their DHTML menu to tell the user there is content to be exposed. Most commonly when an indicator is used a down arrow or something close is used to designate that there is content beneath the navigation element. Below are two screenshots of sites that do and don’t use the indicator.</p>
<div id="attachment_459" class="wp-caption alignleft" style="width: 136px"><a href="http://www.siolon.com/wp-content/uploads/noindicator.png"><img class="size-medium wp-image-459  " title="Sites with no indicator" src="http://www.siolon.com/wp-content/uploads/noindicator-300x207.png" alt="" width="126" height="87" /></a><p class="wp-caption-text">No indicators on Best Buy, Microsoft, and even Portal Solutions.</p></div>
<div id="attachment_458" class="wp-caption alignleft" style="width: 136px"><a href="http://www.siolon.com/wp-content/uploads/indicator.png"><img class="size-medium wp-image-458  " title="Sites with indicator" src="http://www.siolon.com/wp-content/uploads/indicator-300x162.png" alt="" width="126" height="68" /></a><p class="wp-caption-text">Sites with indicators include SharePoint 2010, Reuters, and Google.</p></div>
<h3 style="clear: both;">DHTML Menu Sensitivity</h3>
<p>Another issue that frusturates users is how sensitive DHTML menus are. If a mouse cursor accidentally slides off the menu the entire thing collapses and you have to start over. If the DHTML menu has multiple levels this can be even more frustrating! The complexity of so many DHTML menus is often the thing that makes them the least usable.</p>
<p>In addition to the menu accidentally collapsing, DHTML menus also have a tendency to expand even when the user had no intention of opening it by initiating the onmouseover event unknowingly which can be a jarring experience. This is especially bad when it is coupled with no indicators as mentioned in the last point.</p>
<h3>Getting Lost in the Navigation Structure</h3>
<p>One of the primary purposes of navigation is to inform the user where they are at in the site structure. DHTML menus are notorious for never showing where some is at in the site/navigation structure or where they’ve gone (the latter is less of an issue in my opinion for a navigation structure). A user is often left asking themselves, “<a href="http://www.alistapart.com/articles/whereami">Where Am I?</a>” Proper and helpful navigation should at the very least designate where they are in the site as it corresponds to the navigation.</p>
<p>Often this has to be done with a dynamic programming language to allow the menu to show where the user is at in the navigation. An example I can show is how <a href="http://www.vanseodesign.com/wordpress/hightlight-current-page-wordpress/">WordPress chooses</a> to implement this functionality.</p>
<h3>A Remedy: Superfish</h3>
<p>One of the best implementations I’ve seen of DHTML is the <a href="http://jquery.com/">jQuery</a> plugin <a href="http://users.tpg.com.au/j_birch/plugins/superfish/">Superfish</a>. It is based on the <a href="http://www.alistapart.com/articles/dropdowns">Suckerfish</a> style of markup which is ideal when putting together navigation on the web. While I don’t gravitate towards DHTML, if you’re forced to use it by a client or some other circumstance then this is the best solution I’ve found.</p>
<p>Suckerfish is an ideal solution, because it deals with many of the issues I’ve mentioned above.</p>
<ul>
<li>There is an option for timed delay on mouseout. This alleviates the issue of someone accidentally mousing out and not having to start the menu traversal all over again. It can be adjusted to the best timeout for your audience.</li>
<li>Keyboard navigation is fully supported.</li>
<li>It supports the awesome <a href="http://cherne.net/brian/resources/jquery.hoverIntent.html">hoverIntent</a> jQuery plugin so it won’t accidentally fire when moused over. It also supports a new variation on the hoverIntent plugin called <a href="http://blog.threedubmedia.com/2008/08/eventspecialhover.html">$.event.special.hover</a>.</li>
<li>It can automatically add arrows for you when there are menus beneath, but it also has a specific CSS class attached to those nodes that you can add whatever you’d like to designate content beneath the current menu item.</li>
<li>It uses solid markup, and it offers a lot of custom classes added throughout the menu to style various states and elements.</li>
<li>There are many examples showing you horizontal, vertical, and other variants on the menus appearance (check out the “nav-bar” example which I like a lot).</li>
</ul>
<h3>Conclusion</h3>
<p>While I still firmly believe DHTML menus are not the best solution to the problem, Suckerfish at least provides as usable as an alternative as I’ve seen. DHTML still, I believe, is not necessary when constructing good user interfaces with good information architectures. It is a quickly deteriorating technology due to the use of multitouch devices, but if we’re going to use it we might as well make is as usable as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/making-dhtml-menus-suck-less/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 and XHTML Validation</title>
		<link>http://www.siolon.com/blog/sharepoint-2010-and-xhtml-validation/</link>
		<comments>http://www.siolon.com/blog/sharepoint-2010-and-xhtml-validation/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 22:26:12 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[doctype]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=436</guid>
		<description><![CDATA[I’m writing this and another post about doing development on the SharePoint user interface and the overall user experiences to display some of my disappointment with issues I thought would’ve been resolved in this upcoming version. Microsoft has said on record they are supporting browsers that are XHTML 1.0 compliant, and they haven’t said officially<span class="continue-reading"> <a href="http://www.siolon.com/blog/sharepoint-2010-and-xhtml-validation/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>I’m writing this and another post about doing development on the SharePoint user interface and the overall user experiences to display some of my disappointment with issues I thought would’ve been resolved in this upcoming version.</p>
<p>Microsoft has said on record they are supporting browsers that are XHTML 1.0 compliant, and they haven’t said officially (at least where I can find and <a href="http://blog.drisgill.com/2009/11/sharepoint-2010-w3c-xhtml-compliance.html">validated by others</a>) that it will validate as XHTML 1.0. Regardless, we have a new default master page that uses both the strict XHTML 1.0 DOCTYPE as well as it uses the IE 8 X-UA-Compatible META tag that puts the rendering mode in the strictest rendering available in IE 8. By those two inclusions Microsoft is saying that not only are they coding a page against the XHTML 1.0 strict standard, but by using the META tag they are telling IE 8 that they “really know” what they’re doing. Here is the validation result from a default master page of a team site collection.</p>
<div id="attachment_437" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.siolon.com/wp-content/uploads/2010markup.png"><img class="size-medium wp-image-437" title="SharePoint 2010 Validation Failure" src="http://www.siolon.com/wp-content/uploads/2010markup-300x77.png" alt="" width="300" height="77" /></a><p class="wp-caption-text">SharePoint 2010 Validation Failure</p></div>
<h3>The Problem</h3>
<p>The problem of the default master page is more than just an inability to validate. When using this particular DOCTYPE you are committing to not using deprecated elements and attributes and also that your HTML moves closer to XML by abstracting the presentation (CSS), structure (XHTML), and behavior (JavaScript).</p>
<p>There are elements used inside the default rendering of the master page that <a href="http://www.w3schools.com/tags/default.asp">have been deprecated</a>.</p>
<ul>
<li>valign</li>
<li>align</li>
<li>width</li>
<li>border</li>
<li>font</li>
<li>color</li>
</ul>
<p>Along with deprecated attributes and elements the rendering includes a bevy of inline JavaScript and CSS. I was hoping with all the emphasis on using jQuery in SharePoint recently that the principle of “<a href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript">unobtrusive JavaScript</a>” would make its way into SharePoint. Unfortunately, it continues to uses attributes such as onlick and onload as well as tons of JavaScript inline. It continues to have no rhyme or reason  why it comes out where it does.</p>
<p>Then you get stuff like this:</p>
<pre class="brush: xml; title: ; notranslate">&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</pre>
<p>And here’s another example. Notice that a HTML element comes after the HTML ends. (There are even spans in the head of the document for some reason.)</p>
<pre class="brush: xml; title: ; notranslate">&lt;/html&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;</pre>
<p>Inline styles were a big problem in 2007, and it doesn’t seem to be any better in 2010. They might as well have just used the center and font tags.</p>
<pre class="brush: xml; title: ; notranslate">&lt;p class=&quot;ms-rteThemeForeColor-5-5&quot; style=&quot;text-align:left;font-size:10pt&quot;&gt;
&lt;img alt=&quot;People collaborating&quot; src=&quot;/_layouts/images/homepageSamplePhoto.jpg&quot; style=&quot;margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px&quot;&gt;
&lt;/p&gt;</pre>
<div id="attachment_439" class="wp-caption alignright" style="width: 191px"><a href="http://www.siolon.com/wp-content/uploads/2010corecss.png"><img class="size-full wp-image-439 " title="2010 Core CSS" src="http://www.siolon.com/wp-content/uploads/2010corecss.png" alt="2010 Core CSS" width="181" height="121" /></a><p class="wp-caption-text">An excerpt of the 2010 core CSS file.</p></div>
<p>You would hope that when they do use an external stylesheet that it would be a well commented and laid out file. Unfortunately that is not the case. It still doesn’t have comments, similar code formatting, and it has odd “ReplaceColor” text which I assume changes depending on the SharePoint theme you have selected. We know that this CSS will also not validate against any CSS specification.</p>
<p>Instead of combining the two selectors that use the border: none; they continue from 2007 making them separate selectors which increases the size of the file and decreases the readability of it. This file needs to be clearly documented, formatted consistently, and use of best practices such as CSS shorthand to increase the utility for developers, gain validation, and make the file smaller as a result.</p>
<h3>Are There Improvements?</h3>
<p>It’s not all bad news. Certainly the inclusion of a DOCTYPE is a step in the right direction. I’m also surprised that the strict IE 8 META tag was used to force IE 8 standards mode. Certainly there are less tables, and class names are clearer then they were in 2007.</p>
<p>These are some positive changes however with such a monumental new version I was hoping that many of the aforementioned issues would not be an issue in 2010. Maybe in 2014…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/sharepoint-2010-and-xhtml-validation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 System Requirements and Browser Support</title>
		<link>http://www.siolon.com/blog/sharepoint-2010-system-requirements-and-browser-support/</link>
		<comments>http://www.siolon.com/blog/sharepoint-2010-system-requirements-and-browser-support/#comments</comments>
		<pubDate>Mon, 11 May 2009 21:33:09 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[wcm]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=382</guid>
		<description><![CDATA[The Microsoft SharePoint team has announced on their official blog the following amazing statement (emphasis added): “To ensure the best possible experience across multiple browsers we’re focusing our SharePoint 2010 engineering efforts on targeting standards based browsers (XHTML 1.0 compliant) including Internet Explorer 7, Internet Explorer 8 and Firefox 3.x. running on Windows Operating Systems. <span class="continue-reading"> <a href="http://www.siolon.com/blog/sharepoint-2010-system-requirements-and-browser-support/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>The Microsoft SharePoint team has <a href="http://blogs.msdn.com/sharepoint/archive/2009/05/07/announcing-sharepoint-server-2010-preliminary-system-requirements.aspx">announced on their official blog</a> the following amazing statement (emphasis added):</p>
<blockquote><p>“To ensure the best possible experience across multiple browsers we’re focusing our SharePoint 2010 engineering efforts on targeting standards based browsers (XHTML 1.0 compliant) including Internet Explorer 7, Internet Explorer 8 and Firefox 3.x. running on Windows Operating Systems.  In addition we’re planning on an increased level of compatibility with Firefox 3.x and Safari 3.x on non-Windows Operating Systems.  <em>Due to this focus Internet Explorer 6 will not be a supported browser for SharePoint Server 2010.”</em></p></blockquote>
<p>Amazing! Even IE6 is seen as a dead technology by Microsoft’s standards. Hopefully with news like this and Windows 7 pre-release excitement the browser might finally be relegated to the hall of technological mistakes. They also announced the WCM features in the next version will allow much greater control over the markup which may finally make SharePoint a real candidate for WCM for public-facing sites!</p>
<p>The announcement does also focus that the technological requirements will be all 64 bit and based on Windows 2008 as the host platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/sharepoint-2010-system-requirements-and-browser-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
