<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>Tervel Peykov's blog</title>
    <description>Tervel Peykov's blog</description>
    <link>http://blogs.telerik.com/TervelPeykov/Posts.aspx</link>
    <docs>http://backend.userland.com/rss</docs>
    <item>
      <title>Accessibility and RadEditor </title>
      <description>&lt;p&gt;The following blog post was written together with Rumen Jekov, who is the most experienced support officer at Telerik and has been supporting RadEditor for a number of years now. If you are a RadEditor user, and you contact us, chances are you will be receiving an answer from him. &lt;/p&gt;
&lt;p&gt;The blog post discusses the accessibility features of RadEditor. While accessibility options were not considered important couple of years ago, things have changed - and will be changing even more in the future. For enterprize customers and governmental institutions accessibility is becoming a top priority, and we have gone at great lengths to add accessibility features to our products. Of course, this is an ongoing effort, rather than a one-time go. We keep adding accessibility features to the RadEditor, such as the ability to navigate tools with the keyboard, or switch focus from the content area to the toolbars and back using a keyboard shortcut. One accessibility feature that was added recently to RadEditor is (cross-browser) support for AccessKey.&lt;/p&gt;
&lt;p&gt;We hope the following information will be helpful to all who want to learn more about the editor's accessibility features.&lt;/p&gt;
&lt;h1&gt; Accessibility and RadEditor&lt;/h1&gt;
&lt;p&gt;Telerik RadEditor satisfies the requirements for accessibility, which is a result of the following:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;The interface of the RadEditor&lt;strong&gt; &lt;/strong&gt;is &lt;strong&gt;"Level A"&lt;/strong&gt; accessible (in compliance with the &lt;strong&gt;W3C Web Accessibility Guidelines 1.0&lt;/strong&gt;). Verified with the &lt;span id="ctl03_repeaterMessages_ctl07_lblMessageText"&gt;&lt;span class="threadMessageBody" id="Layout_ctl07_repeaterMessages_ctl00_lblMessageText"&gt;&lt;a href="http://www.hisoftware.com/access/newvIndex.html" target="_blank"&gt;HiSoftware's AccVerify&lt;/a&gt; tool.&lt;br /&gt;
    &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;RadEditor passes the check of the &lt;strong&gt;W3C accessibility validator&lt;/strong&gt; (click the W3C logo &lt;img width="83" height="31" alt="Accessibility Verified!" src="http://www.telerik.com/demos/aspnet/Prometheus/Img/wcag1-a.gif" /&gt; on one of the on-line examples). Verified with the &lt;span id="Span1"&gt;&lt;span class="threadMessageBody" id="Span2"&gt;&lt;a href="http://www.hisoftware.com/access/newvIndex.html" target="_blank"&gt;HiSoftware's AccVerify&lt;/a&gt; tool.&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Semantic rendering&lt;/strong&gt; - helps the screen readers and alternative browsing devices to read and interpret the content easier. RadEditor offers &lt;strong&gt;title attributes&lt;/strong&gt; for all tools. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Keyboard Shortcuts&lt;/strong&gt; - All tools and commands can be associated with shortcuts either with a property of the object or in the ToolsFile.xml file. You can find more information in the following help article: &lt;a href="http://www.telerik.com/help/aspnet-ajax/keyboardshortcuts.html" target="_blank"&gt;Keyboard Shortcuts&lt;/a&gt;. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Toolbar optimization&lt;/strong&gt; - when the &lt;strong&gt;ToolbarMode &lt;/strong&gt;property is not set to "&lt;em&gt;Default&lt;/em&gt;", but for example to "&lt;em&gt;ShowOnFocus&lt;/em&gt;" then the editor's tools are initialized &lt;strong&gt;at the moment of displaying, but not on page load&lt;/strong&gt;. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;ToolProviderID&lt;/strong&gt; - this property helps &lt;em&gt;significantly&lt;/em&gt; reduce the HTML markup and JSON sent from server to the client when multiple RadEditor objects with the same tools are used on the same page. The &lt;strong&gt;ToolProviderID&lt;/strong&gt; should be set to the ID of another RadEditor, e.g.&lt;br /&gt;
    &lt;br /&gt;
    &lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 600px; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 77px; background-color: white"&gt;
    &lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
        &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor &lt;/span&gt;&lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"RadEditor1"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor &lt;/span&gt;&lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"RadEditor2"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;ToolProviderID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"&lt;strong&gt;RadEditor1&lt;/strong&gt;"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor &lt;/span&gt;&lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"RadEditor3"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;ToolProviderID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"&lt;strong&gt;RadEditor1&lt;/strong&gt;"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;AccessKey&lt;/strong&gt; - This accessibility property sets a keyboard shortcut key to access the content area of RadEditor, e.g.&lt;br /&gt;
    &lt;p&gt; &lt;/p&gt;
    &lt;div style="border-right: #7f9db9 1px solid; border-top: #7f9db9 1px solid; font-size: 11px; overflow: auto; border-left: #7f9db9 1px solid; width: 600px; line-height: 100%! important; border-bottom: #7f9db9 1px solid; font-family: courier new; height: 82px; background-color: white"&gt;
    &lt;table style="border-top-width: 0px; border-left-width: 0px; margin: 2px 0px; width: 99%; border-bottom: #eee 0px solid; border-collapse: collapse; background-color: #fff; border-right-width: 0px" cellspacing="0" cellpadding="0"&gt;
        &lt;colgroup&gt;&lt;col style="padding-left: 10px; font-size: 11px; border-bottom: #f7f7f7 1px solid; font-family: courier new; white-space: nowrap" /&gt;&lt;/colgroup&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="font-size: 11px"&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor &lt;/span&gt;&lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"RadEditor1"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;strong&gt;AccessKey&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"1"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: #f7f7f7"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor &lt;/span&gt;&lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"RadEditor2"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;strong&gt;AccessKey&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"2"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor &lt;/span&gt;&lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"RadEditor3"&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;strong&gt;AccessKey&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;"3"&lt;/span&gt;&lt;span style="font-size: 11px"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px"&gt;telerik:radeditor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px"&gt; &lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: In Internet Explorer use &lt;strong&gt;Alt + AccessKey&lt;/strong&gt; to give focus to the element with a specified access key.&lt;br /&gt;
    To activate an access key in Firefox 2.0 use &lt;strong&gt;Shift + Alt + &lt;strong&gt;AccessKey&lt;/strong&gt;&lt;/strong&gt;.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Full keyboard accessibility&lt;/strong&gt; - RadEditor is a &lt;em&gt;fully keyboard navigable&lt;/em&gt; component, including shortcuts to open and operate with drop-downs, tools and dialogs, achieving true accessibility. &lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;strong&gt;F10 special key&lt;/strong&gt; - focus goes on toolbars &lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Full toolbars navigation&lt;/strong&gt; - use arrow keys or TAB / Ctrl-TAB key &lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Navigatable dropdowns&lt;/strong&gt; - RadEditor also provides the ability to navigate dropdown items as well. Press enter to execute command. &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;FullScreen mode&lt;/strong&gt; (&lt;img alt="" src="http://www.telerik.com/help/aspnet-ajax/images/ToggleScreenMode.gif" border="0" /&gt;&lt;strong&gt;F11 shortcut&lt;/strong&gt;) - this feature maximizes your available space to better access, view and edit the editor's content&lt;br /&gt;
    &lt;br /&gt;
    &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/images/FullScreenModeAjax.png" target="_blank"&gt;&lt;img style="width: 421px; height: 313px" alt="Full Screen mode - click to enlarge" src="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/images/thumb_FullScreenModeAjax.png" /&gt;&lt;/a&gt;  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Zoom tool&lt;/strong&gt; ( &lt;img alt="" src="http://www.telerik.com/help/aspnet-ajax/images/Zoom1.gif" border="0" /&gt; - &lt;em&gt;Internet Explorer only&lt;/em&gt;) - changes the level of content magnification. You can use the 'zoom' dropdown to increase the zoom factor of all elements inside the content area and make them larger and much easier for reading and observation&lt;br /&gt;
    &lt;br /&gt;
    &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/images/ZoomTool.png" target="_blank"&gt;&lt;img style="width: 408px; height: 240px" alt="Zoom tool - click to enlarge" src="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/Images/thumb_ZoomTool.png" /&gt;&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Dialogs accessibility&lt;/strong&gt; - ability to switch dialog tabs with keyboard and to navigate dialog controls with Tab. You can switch to the next tab by clicking TAB and after that Enter. You can navigate through the elements in the Dialog using the TAB key.&lt;br /&gt;
    &lt;br /&gt;
    &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/Images/HyperlinkManager.png" target="_blank"&gt;&lt;img alt="" src="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/Images/thumb_HyperlinkManager.png" /&gt;&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Optional accessibility settings according to W3C WAI and Section 508 Accessibility Guidelines&lt;/strong&gt; - the content generated by the RadEditor can become accessible if the author fills in all required fields (marked with a special accessibility icon &lt;img alt="" src="http://www.telerik.com/help/aspnet/editor/images/508_sign.gif" border="0" /&gt; - &lt;strong&gt;Section 508&lt;/strong&gt;)&lt;span style="background-color: #ffa1a1"&gt;&lt;span style="background-color: #ffffff"&gt;.&lt;/span&gt;&lt;span style="background-color: #ffffff"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: #ffffff"&gt;&lt;/span&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;span style="background-color: #ffffff"&gt;every content element, which is more complex than pure text, has additional accessibility fields for detailed description (e.g. tooltip, long description, etc.)&lt;br /&gt;
        &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/Images/SetImagePropertiesDialog.png" target="_blank"&gt;&lt;img style="width: 315px; height: 348px" alt="Set Image Properties dialog - click to enlarge" src="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/Images/thumb_SetImagePropertiesDialog.png" /&gt;&lt;/a&gt;&lt;br /&gt;
        &lt;br /&gt;
        &lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span style="background-color: #ffffff"&gt;new or existing tables can be enriched with special accessibility fields from the &lt;strong&gt;Table Wizard&lt;/strong&gt; or from the &lt;strong&gt;Table Properties&lt;/strong&gt; dialog &lt;br /&gt;
        &lt;br /&gt;
        &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/Images/TableWizard.png" target="_blank"&gt;&lt;img style="width: 431px; height: 309px" alt="Table Wizard Accessibility Tab - click to enlarge" src="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/AccessibilitySupport/Images/thumb_TableWizard.png" /&gt;&lt;/a&gt; &lt;br /&gt;
        &lt;/span&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;OnClientPasteHtml&lt;/strong&gt; - The &lt;a href="http://www.telerik.com/help/aspnet-ajax/onclientpastehtml.html" target="_blank"&gt;&lt;strong&gt;OnClientPasteHtml&lt;/strong&gt;&lt;/a&gt; event is useful in scenarios where the developers need to examine or modify the HTMl to be pasted by an editor tool before it is inserted in the editor content area. Using this event the developer can enforce the creation of accessible HTML/XHTML content.&lt;br /&gt;
    &lt;br /&gt;
    Some common cases where the event can be used are:
    &lt;ul&gt;
        &lt;li&gt;Check whether user specified &lt;strong&gt;alt&lt;/strong&gt; attribute for an image &lt;/li&gt;
        &lt;li&gt;Make modifications to a table being inserted (e.g. set a specific classname, etc) &lt;/li&gt;
        &lt;li&gt;Examine or modify a link before it is inserted &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Custom skins&lt;/strong&gt; - RadEditor offers the ability to create custom skins with more accessible appearance (e.g. larger buttons, high-contrast colors, etc.). You can find more information how to make your own custom skin in the following help articles: &lt;a href="http://www.telerik.com/help/aspnet-ajax/createcustomskin.html" target="_blank"&gt;Creating a custom skin&lt;/a&gt; and &lt;a href="http://www.telerik.com/help/aspnet-ajax/createnewskin.html" target="_blank"&gt;Create New Skin&lt;/a&gt;. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #330099"&gt;&lt;br /&gt;
Section 508 &lt;img alt="" src="http://www.telerik.com/help/aspnet/editor/images/508_sign.gif" border="0" /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The USA federal mandate requires that information technology be made accessible to people with disabilities. Much of Section 508 compliance concerns making Web sites, intranets, and web-enabled applications accessible. Section 508 compliance has since become a major prerequisite not only in government related software, but also in most enterprize and corporate software solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #330099"&gt;W3C Web Content Accessibility Guidelines 1.0&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/strong&gt;The main goal of these guidelines is to encourage developers in creating applications providing accessible contents. However, adhering to these guidelines will also make Web content more accessible to all kind of users, using different devices and interfaces: desktop browser, voice browser, mobile phone, automobile-based personal computer, etc.&lt;/p&gt;
&lt;p&gt;In accordance with these guidelines W3C defines three levels of conformance developers may implement in order to provide some level of content compliance to their products:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Compliance Level "A"&lt;/strong&gt; &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Compliance Level "AA"&lt;/strong&gt; &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Compliance Level "AAA"&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more details on W3C "Web Content Accessibility Guidelines 1.0" see &lt;a href="http://www.w3.org/TR/WAI-WEBCONTENT/"&gt;http://www.w3.org/TR/WAI-WEBCONTENT/&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In our attempt to make our products content compliant, each web-control we develop and its QSF strive to obtain at least one of conformance levels listed above.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/TervelPeykov/Posts/08-07-16/Accessibility_and_RadEditor.aspx</link>
      <author>Tervel Peykov &amp; Rumen Jekov</author>
      <comments>http://blogs.telerik.com/TervelPeykov/Posts/08-07-16/Accessibility_and_RadEditor.aspx</comments>
      <guid isPermaLink="false">382ef09d-4e2a-4953-ac77-b8ab548db6ee</guid>
      <pubDate>Wed, 16 Jul 2008 10:20:33 GMT</pubDate>
    </item>
    <item>
      <title>Some RadToolTip  tips &amp; tricks</title>
      <description>&lt;p&gt;I wrote this blog post together with our support officer Svetlina, who is in charge of answering tickets submitted for RadToolTip, RadSplitter and RadWindow. She has prepared a short list of tips and tricks based on some recurring questions that we have noticed over time. The original tips&amp;amp;tricks list had 12 entries, but some of the solutions were eventually built into the RadToolTip code, so it was reduced to&amp;nbsp;7 :)&lt;/p&gt;
&lt;p&gt;We hope this post will be useful to all who try to combine the tooltip with other RadControls and use it in more advanced scenarios that are not always covered in our online demos. We will be following soon with tips &amp;amp; tricks sections for other popular controls such as RadWindow and RadEditor. Enjoy reading!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 align="center"&gt;RadToolTip Tips &amp;amp;Tricks&amp;nbsp;&lt;/h2&gt;
&lt;p style="margin: 0in 0in 10pt;"&gt;&lt;a href="http://www.telerik.com/products/aspnet-ajax/controls/tooltip/overview.aspx"&gt;RadToolTip online demos page&lt;br /&gt;
RadToolTip overview page&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="text-decoration: underline;"&gt;
1. Empty tooltip manager tooltipifies all elements on the page&lt;/span&gt;&lt;br /&gt;
The RadToolTipManager has a property called Autotooltipify. At present its default value is true. This means that if the RadToolTipManager's TargetContorls collection is empty, the manager will automatically tooltipify all elements on the page that have their title(ToolTip) property set. &lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt;"&gt;This property was not present in the original RadToolTipManager implementation and was added later due to many requests. We are considering to also change its default value from true to false, because patterns of RadToolTipManager usage show that the manager is commonly used to tooltipify only specific elements. You can find more information and an online demo about it here.&lt;br /&gt;
&lt;a href="http://www.telerik.com/demos/aspnet/prometheus-futures/ToolTip/Examples/AutoTooltipify/DefaultCS.aspx"&gt;http://www.telerik.com/demos/aspnet/prometheus-futures/ToolTip/Examples/AutoTooltipify/DefaultCS.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;2. AJAX in tooltip only updates tooltip content area&lt;/span&gt;&lt;br /&gt;
The OnAjaxUpdate event&amp;nbsp;of the RadToolTipManager initiates an AJAX request&amp;nbsp;when&amp;nbsp;the user moves the mouse over a particular 'tooltipified' element on the client.&amp;nbsp;This allows for dynamically loading and displaying rich data content for a particular element on demand.&amp;nbsp;By using it you can update only the content of the tooltips which tooltipify the controls declared in the RadToolTipManager's TargetControls collection. This event cannot be used for updating other parts of the page (other update panels on it).&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;3. Differences between usage scenarios of RadToolTipManager and RadToolTip&lt;/span&gt;&lt;br /&gt;
RadToolTip and RadToolTipManager are similar in use and can deliver the same end result. Yet there are scenarios when one control can deliver the desired result with less developer effort. A demo which shows the differences in the RadToolTip and RadToolTipManager can be found here: &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/ToolTip/Examples/ToolTipVersusToolTipManager/DefaultCS.aspx"&gt;http://www.telerik.com/DEMOS/ASPNET/Prometheus/ToolTip/Examples/ToolTipVersusToolTipManager/DefaultCS.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;4. HTML elements that cannot be tooltipified&lt;/span&gt;&lt;br /&gt;
There are some elements which cannot be tooltipified with a standard browser tooltip and respectively with RadToolTip because of their specific structure. For example, such elements are those, which have a &amp;lt;SELECT&amp;gt; html tags, because they include other elements which are not real HTML objects (examples are &amp;lt;asp:DropDownList&amp;gt;, &amp;lt;asp:ListBox&amp;gt;, etc). Other elements which are not good for tooltipifing are IFRAME, OBJECT, EMBED.&lt;br /&gt;
In conclusion we can say that if it is possible to configure an element to show a standard tooltip, it can be tooltipified with RadToolTip, too. Otherwise it is not possible.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="text-decoration: underline;"&gt;5. RadControls for which RadTooltip TargetControlID cannot be directly bound&lt;/span&gt;&lt;br /&gt;
There are some RadControls for which the RadToolTip cannot be directly bound. When you use them you need to attach the tooltip to the control's specific internal HTML element whose ID is different and made by adding a specific suffix. Such controls are RadComboBox, RadToolBar, RadTextBox and their corresponding suffixes are _Input, _button, _text. &lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt;"&gt;You can find how to tooltipify an entire RadComboBox control or its items separately here:&lt;br /&gt;
&lt;a href="http://www.telerik.com/support/kb/article/b454K-hmh-b454T-cmc-b454c-cmc.aspx"&gt;http://www.telerik.com/support/kb/article/b454K-hmh-b454T-cmc-b454c-cmc.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt;"&gt;How to tooltipify a RadInput control -&amp;nbsp;RadTextBox,&amp;nbsp;RadNumericTextBox,&amp;nbsp;RadMaskedTextBox,&amp;nbsp;RadDateInput is demonstrated here:&lt;br /&gt;
&lt;a href="http://www.telerik.com/support/kb/article/b454K-hmm-b454T-cmc-b454c-cmc.aspx"&gt;http://www.telerik.com/support/kb/article/b454K-hmm-b454T-cmc-b454c-cmc.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;6. RequiredFieldValidator inside the RadToolTip&lt;/span&gt;&lt;br /&gt;
When you use a RequiredFieldValidator inside a RadToolTip you add the RequiredFieldValidator to the page, not only to the displayed in the tooltip part of it. After that, when you click any of your page's elements which cause validation, those trigger the check of the validator, which fails even if the content of the tooltip is invisible. That is why, in such scenarios you have to set&amp;nbsp;the CausesValidation property to false for all elements on the page that do not require it.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="text-decoration: underline;"&gt;
7.
RadTooltip&amp;nbsp;and RadGrid Classic - put the grid into an UpdatePanel and turn off the grid AJAX - it won't work properly when using RadGrid's AJAX&lt;/span&gt;&lt;br /&gt;
When you use RadToolTipManager to tooltipify a Classic RadGrid the tooltips are not updated and disappear after an AJAX request made by the RadGrid by EnableAjax = true. This is due to RadGrid performing an internal AJAX request which slightly differs from the standard MS AJAX request. Because of this the RadToolTipManager is not "informed" about the update and doesn't update the tooltips. In order to make the correct request you must put the RadGrid in an Update panel and to set its EnableAjax property to false. &lt;br /&gt;
The RadGrid for ASP.NET AJAX control can be used with Ajax enabled with RadToolTipManager without such problems because its implementation allows this. &lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/TervelPeykov/Posts/08-07-11/Some_RadToolTip_tips_tricks.aspx</link>
      <author>Tervel Peykov &amp; Svetlina Anati</author>
      <comments>http://blogs.telerik.com/TervelPeykov/Posts/08-07-11/Some_RadToolTip_tips_tricks.aspx</comments>
      <guid isPermaLink="false">d8e69549-295e-4d4c-b938-86cc24eca2a5</guid>
      <pubDate>Fri, 11 Jul 2008 07:03:00 GMT</pubDate>
    </item>
    <item>
      <title>Ever needed a demo using RadControls for ASP.NET AJAX using the Q1 2008 RadControls suite?</title>
      <description>&lt;p&gt;I visited DevConnections in Orlando about a month ago. There my colleague Todd Anglin and I held a vendor session called "Developing Rich, Responsive Applications using Telerik RadControls for ASP.NET AJAX". My team had prepared a demo for the vendor session - and we have 3 major goals when we started implementing it:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;We wanted to keep the code to a minimum (which I think we managed quite nicely). Most of the about 200 lines of server code are related to database queries, and the client-side only uses about 40 lines of code. &lt;/li&gt;
    &lt;li&gt;We wanted it to be real-lfe and do something meaningful, so we chose to use the well-known Northwind database &lt;/li&gt;
    &lt;li&gt;We wanted to use AJAX and Web Services in order to ensure fast, efficient and responsive application. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At the vendor session I focused on clarifying when it is good to use AJAX, and when it is better to use Web services to achieve the desired result. In my experience, the potential of using web services for speeding up the performance of an application is very underutilised - not only are they powerful, but since a lot of our products from the RadControls suite have built-in WebService support - it is also very simple to use them.&lt;/p&gt;
&lt;p&gt;It is best to use AJAX when there is some kind of a process involved, and to use WebServices for data presentation. The main reason for this is that AJAX maintains the whole application state, providing for "integrity" between the different components on the page, while the Web services are pure, lightweight - but have no "sense" of state. Without getting into much further detail (perhaps I should devote a separate blog post on that one) and to avoid boring you, I gladly present you the application itself to explore, download and play with: &lt;/p&gt;
&lt;div dir="ltr"&gt;Live link: &lt;a href="http://www.telerik.com/crmsample/" target="blank"&gt;http://www.telerik.com/crmsample/&lt;/a&gt;&lt;/div&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;Code library link: &lt;a href="http://www.telerik.com/community/code-library/submission/b311D-bechtd.aspx" target="blank"&gt;http://www.telerik.com/community/code-library/submission/b311D-bechtd.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;  &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="text-decoration: underline"&gt;Overview&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;The following demo application uses the Microsoft Northwind database and controls from the RadControls suite to develop a rich interactive application with very little amount of code. The application uses AJAX and WebServices to load data on demand, and demonstrates the seamless integration of RadControls into the MS AJAX framework, as well as the built in web-service support of several RadControls.&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;The application consists of a master page, and two ASPX pages - Default.aspx and EuropeanCountries.aspx. Both pages provide somewhat similar functionality and display similar data, but with somewhat different approaches. The client code needed for fine-tuning the application totals less than 50 lines, and practically all the server-side code is related to accessing the database and processing the returned datasets.&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="text-decoration: underline"&gt;What the application is about&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;The main application page features a tree view with countries on the left, and a grid on the right. &lt;/p&gt;
&lt;ul style="margin-top: 0in" type="disc"&gt;
    &lt;li style="margin: 0in 0in 0pt"&gt;Clicking on a tree node causes the customers for a particular country to be displayed using a &lt;b&gt;web service&lt;/b&gt; to load the data. &lt;/li&gt;
    &lt;li style="margin: 0in 0in 0pt"&gt;Additional information [e.g. the customer profile] is displayed in a tooltip which uses a &lt;b&gt;web service &lt;/b&gt;to fetch data on demand. &lt;/li&gt;
    &lt;li style="margin: 0in 0in 0pt"&gt;The grid on the right side features the orders a customer made so far, and its content is loaded with &lt;b&gt;AJAX&lt;/b&gt; (a partial page update occurs) when a customer is selected from the tree view. &lt;/li&gt;
    &lt;li style="margin: 0in 0in 0pt"&gt;Clicking on a grid row causes additional information about an order to be displayed (e.g. the type and number of products in that order) in a tooltip that loads its data using a &lt;b&gt;web service&lt;/b&gt;. &lt;/li&gt;
&lt;/ul&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="text-decoration: underline"&gt;RadControls featured in the application&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;The controls used in the application are: &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;b&gt;RadSplitter&lt;/b&gt; (for page layout), &lt;b&gt;RadTreeView&lt;/b&gt; (for country/customers hierarchy), &lt;b&gt;RadGrid&lt;/b&gt; (for grid data), &lt;b&gt;RadToolTip&lt;/b&gt; (for various tasks where rich-content loaded on demand is needed), &lt;b&gt;RadWindow&lt;/b&gt; (a fully customizable windowed control used as a dialog container), &lt;b&gt;RadComboBox&lt;/b&gt; (as a rich dropdown), &lt;b&gt;RadDatePicker&lt;/b&gt; (for choosing dates), &lt;b&gt;RadFormDecorator&lt;/b&gt; (to style page buttons, checkboxes and radiobuttons if any), &lt;b&gt;RadMenu&lt;/b&gt; (for horizontal navigation)&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="text-decoration: underline"&gt;Extras&lt;/span&gt;&lt;/p&gt;
&lt;ol style="margin-top: 0in" type="1"&gt;
    &lt;li style="margin: 0in 0in 0pt"&gt;Additional codeless features demonstrated in the application are grid sorting, grid alternating rows and row hover effects. &lt;/li&gt;
    &lt;li style="margin: 0in 0in 0pt"&gt;When using a Web Service to load content [e.g. in a tooltip], it is not possible to load a typed user control. At first glance it seems one must manually construct the whole HTML response by using code. However, the application features a much better, yet very simple approach - using reflection to bind a data object to a control, without the need for casting the control to its actual type. This allows for using regular .ASCX-es with markup that is easy to change by designers. &lt;/li&gt;
    &lt;li style="margin: 0in 0in 0pt"&gt;There is client code in the RadWindow that loads order lists that causes the window to shrink or expand, depending on the number of orders when the order grid loads. This code will later enter into the RadWindow product itself and will be exposed from a Boolean property. &lt;/li&gt;
&lt;/ol&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="text-decoration: underline"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="text-decoration: underline"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="text-decoration: underline"&gt;Demo screenshots&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;1. The application main page, featuring a tree with customers organized in hierarchy by country. Customer orders are on the right. Hovering a customer causes his/her profile to be fetched from the database using a web service. &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt" align="center"&gt;&lt;img alt="" src="http://blogs.telerik.com/Libraries/MetaBlog/DevConn1.sflb" /&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;2.  Demonstration how the web-service call for loading customers is executed&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt" align="center"&gt;&lt;span style="font-size: 12pt; font-family: 'times new roman'"&gt;&lt;img alt="" src="/Libraries/MetaBlog/DevConn2.sflb" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="font-size: 12pt; font-family: 'times new roman'"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="font-size: 12pt; font-family: 'times new roman'"&gt;3. Hovering a customer causes his profile to be displayed in a tooltip&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt" align="center"&gt;&lt;img alt="" src="/Libraries/MetaBlog/DevConn3.sflb" /&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;4. Clicking a row for an order causes the products ordered to be displayed in a tooltip using a web service.&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt" align="center"&gt;&lt;img alt="" src="/Libraries/MetaBlog/DevConn4.sflb" /&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;5. Each order can be edited by clicking on the &lt;b&gt;Edit&lt;/b&gt; link on the right. This causes a separate dialog to be loaded (using a RadWindow) where the order details can be changed. Once the changes are confirmed and the order is updated, the dialog causes the grid to refresh using AJAX to display the changes immediately. &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt" align="center"&gt;&lt;img alt="" src="/Libraries/MetaBlog/DevConn5.sflb" /&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;6. &lt;span style="font-size: 12pt; font-family: 'times new roman'"&gt;The European customers page features an image map of Europe, where each country is marked as an image area. Hovering the image area causes a tooltip to appear featuring clickable links for all customers from the selected country.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt" align="center"&gt;&lt;img alt="" src="/Libraries/MetaBlog/DevConn6.sflb" /&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt;7. &lt;span style="font-size: 12pt; font-family: 'times new roman'"&gt;Clicking on a customer causes a new dialog to appear featuring all the customer orders. The window's height is automatically changed to be as high as the orders' list.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt" align="center"&gt;&lt;img alt="" src="/Libraries/MetaBlog/DevConn7.sflb" /&gt;&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/TervelPeykov/Posts/08-06-10/Ever_needed_a_demo_using_RadControls_for_ASP_NET_AJAX_using_the_Q1_2008_RadControls_suite.aspx</link>
      <author>Tervel Peykov</author>
      <comments>http://blogs.telerik.com/TervelPeykov/Posts/08-06-10/Ever_needed_a_demo_using_RadControls_for_ASP_NET_AJAX_using_the_Q1_2008_RadControls_suite.aspx</comments>
      <guid isPermaLink="false">c1b51693-3362-41ad-84bd-1d9916807047</guid>
      <pubDate>Tue, 10 Jun 2008 10:16:00 GMT</pubDate>
    </item>
    <item>
      <title>RadEditor... on msdn2.microsoft.com</title>
      <description>It has been some time this was in the making... and as of the beginning of this week RadEditor is the editor one uses to submit community content in MSDN. Here is a hasty screenshot I made for you:&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://blogs.telerik.com/Photos/Storage/peykov/MSDN_RadEditor.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
To my best knowledge, this is the fifth Microsoft team that adopts the RadEditor, yet I believe it is the first team to use it on a public Microsoft site (besides, such an important one). The other teams using the editor are doing internal MS content, and since I have not explicitly asked for permission to list their names here, I will refrain from doing that, however tempted I feel. &lt;br /&gt;
&lt;br /&gt;
While this is certainly a good proof of RadEditor's qualities, and of Telerik products in a broader sense, it is also a challenge to live up to the expectations. And even if you won't jump yet on the &lt;strong&gt;msdn&lt;/strong&gt; site to submit your community posts, it is still you - the Telerik community - who will benefit from the fact the editor is there.&amp;nbsp; Now we will need to address reported problems even faster than before :)&amp;nbsp; &lt;br /&gt;
</description>
      <link>http://blogs.telerik.com/TervelPeykov/Posts/08-04-29/RadEditor_on_msdn2_microsoft_com.aspx</link>
      <author>Tervel Peykov</author>
      <comments>http://blogs.telerik.com/TervelPeykov/Posts/08-04-29/RadEditor_on_msdn2_microsoft_com.aspx</comments>
      <guid isPermaLink="false">c4e4909f-6de3-4cae-a9b5-afb8d701a265</guid>
      <pubDate>Tue, 29 Apr 2008 12:06:27 GMT</pubDate>
    </item>
    <item>
      <title>Prometheus Futures and... new RadFormDecorator :)</title>
      <description>&lt;p&gt;Did you know that we just released our &lt;strong&gt;Prometheus Futures &lt;/strong&gt;build?&lt;br /&gt;
And what exactly a &lt;strong&gt;Futures &lt;/strong&gt;build means?&lt;br /&gt;
It is nothing less than a preview build for the &lt;strong&gt;2008&lt;/strong&gt; &lt;strong&gt;Q1 RadControls&lt;/strong&gt; suite release coming in April! We keep adding new controls to the &lt;strong&gt;Prometheus &lt;/strong&gt;suite to get it ready for its official premiere. Three long-awaited RadControls Classic controls were ported to the suite -  &lt;strong&gt;RadToolbar&lt;/strong&gt;, &lt;strong&gt;RadPanelbar&lt;/strong&gt;, &lt;strong&gt;RadTabstrip&lt;/strong&gt;, thus bringing the total number of &lt;strong&gt;Prometheus &lt;/strong&gt;controls to &lt;strong&gt;twenty-two&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
The Prometheus suite is more than a suite of controls. It is built on top of MS AJAX, and offers a common client-side framework that allows for small overall client-side footprint, compared to the fully-self containted &lt;strong&gt;RadControls Classic&lt;/strong&gt;. I highly recommend checking out the online demos available here:&lt;br /&gt;
&lt;a href="http://www.telerik.com/demos/aspnet/prometheus-futures" target="_blank"&gt;http://www.telerik.com/demos/aspnet/prometheus-futures&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Here is a forum post that features plenty of information about what's packed in the build:&lt;br /&gt;
&lt;a href="http://www.telerik.com/community/forums/thread/b311D-bcmkaa.aspx"&gt;http://www.telerik.com/community/forums/thread/b311D-bcmkaa.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I would also like to take the chance to share some information about a brand new control developed by my team, that we just added to the suite - the all-new &lt;strong&gt;RadFormDecorator&lt;/strong&gt; :) The FormDecorator started more like a fun project that we posted in our CodeLibrary section. However, judging by the amount of comments it generated, it turns out people have been waiting for such a thing for quite some time. &lt;br /&gt;
&lt;a href="http://www.telerik.com/community/code-library/submission/b311D-bcaecg.aspx"&gt;http://www.telerik.com/community/code-library/submission/b311D-bcaecg.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
What is the &lt;strong&gt;RadFormDecorator &lt;/strong&gt;control? It will skin your page buttons, checkboxes, radiobuttons, checkbox lists, radiobutton lists without the need for you to write any code or change anything on the page! Just drop the &lt;strong&gt;RadFormDecorator &lt;/strong&gt;- set a property or two in case you need fine-tuning, and off you go! It cannot get more "unobtrusive" than that :) So many people wanted it a part of the Prometheus suite, that we decided to include it there, with all the bells and whistles - revised client code, support for all the Prometheus skins, as well as implementing new features that keep coming. Here are the &lt;strong&gt;RadFormDecorator &lt;/strong&gt;current online demos, in case you want to give them a quick look - &lt;br /&gt;
&lt;a href="http://www.telerik.com/demos/aspnet/prometheus-futures/FormDecorator/Examples/Default/DefaultCS.aspx"&gt;http://www.telerik.com/demos/aspnet/prometheus-futures/FormDecorator/Examples/Default/DefaultCS.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here are the main features of the &lt;strong&gt;RadFormDecorator &lt;/strong&gt;(compared to the CodeProject version): &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;12 skins  &lt;/li&gt;
    &lt;li&gt;Hover/Out states for the buttons using pure CSS  &lt;/li&gt;
    &lt;li&gt;Caching of images for IE6 for smooth user experience  &lt;/li&gt;
    &lt;li&gt;CSS for disabled radiobuttons, checkboxes and buttons  &lt;/li&gt;
    &lt;li&gt;Various CSS look &amp;amp; feel improvements &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Internally, we also have 2 new examples, and the following new features complete:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;DecorationZoneID&lt;/strong&gt; - allows decorating parts of the page, not the whole page. Among other things, this allows using multiple &lt;strong&gt;RadFormDecorator &lt;/strong&gt;to skin different sections of the page. &lt;/li&gt;
    &lt;li&gt;Automatically detects partial page updates and re-decorates updated page portions &lt;/li&gt;
    &lt;li&gt;Ability to allso skin the scrollbars (IE only) - for all 12 skins. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And, of course, there are more improvements that we have in mind for the control :)&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/TervelPeykov/Posts/08-03-28/Prometheus_Futures_and_new_RadFormDecorator_.aspx</link>
      <author>Tervel Peykov</author>
      <comments>http://blogs.telerik.com/TervelPeykov/Posts/08-03-28/Prometheus_Futures_and_new_RadFormDecorator_.aspx</comments>
      <guid isPermaLink="false">5101b0f1-3d3a-4122-a50a-616a9b88c348</guid>
      <pubDate>Fri, 28 Mar 2008 12:37:48 GMT</pubDate>
    </item>
    <item>
      <title>r.a.d.controls, Event-handing, Atlas and Opera</title>
      <description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I came across some funny event handler behavior while researching a strange problem of one of our controls (&lt;a href="http://www.telerik.com/r.a.d.window"&gt;&lt;span&gt;r.a.d.window&lt;/span&gt;&lt;/a&gt;) under Opera.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Three problems are always present when writing self-contained, reusable, cross-browser DHTML controls - differences in browser APIs, consideration for third-party code on the page that might be messing with the API and - last but not least - unexpected and weird browser behavior. All these came together in the problem I am about to describe.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Different browsers define different ways to attach event handlers - e.g. &lt;strong&gt;attachEvent &lt;/strong&gt;in IE, &lt;strong&gt;addEventListener &lt;/strong&gt;in Firefox and Safari, and support for both in Opera. One also needs to make sure that events are using the "on" in IE e.g. "onload" in IE and "load" in Firefox. For r.a.d.controls we have written a thin layer that hides the browser difference and allows a control to register for an event without making any browser checks.The core of the approach is:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &lt;span&gt;if&lt;/span&gt; (attachEvent) attachEvent&amp;nbsp; //IE syntax first&lt;br&gt;&amp;nbsp; &lt;span&gt;else&lt;/span&gt; &lt;span&gt;if&lt;/span&gt; (addEventListener) addEventListener //Moz syntax second&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;All worked fine until the Microsoft Atlas framework came along. In the so-called "browser compat layer" of Atlas, &lt;strong&gt;attachEvent &lt;/strong&gt;is defined for Firefox browsers as well. This caused an immediate problem - and looking at the Microsoft code it is easy to see why -&amp;nbsp;here is the important part of the attachEvent method implementation for Firefox/Mozilla: &lt;/p&gt;
&lt;p&gt;&lt;span&gt;var&lt;/span&gt; attachEventProxy = &lt;span&gt;function&lt;/span&gt;(eventName, eventHandler) {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eventHandler._mozillaEventHandler = &lt;span&gt;function&lt;/span&gt;(e) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.&lt;span&gt;event&lt;/span&gt; = e;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;eventHandler();&lt;br&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;return&lt;/span&gt; e.returnValue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;this&lt;/span&gt;.addEventListener(eventName.slice(2), eventHandler._mozillaEventHandler, &lt;span&gt;false&lt;/span&gt;);&lt;br&gt;}&lt;/p&gt;
&lt;p&gt;As can be seen - when an event is fired in Firefox, window.&lt;span&gt;event&lt;/span&gt; variable is defined (similar to IE) and the event handler is called without providing it with the original&amp;nbsp;local variable &lt;strong&gt;e&lt;/strong&gt; as its first argument! This works fine in the Atlas framework, because all Atlas event handlers are implemented to&amp;nbsp;use window.event but unfortunately it did break some of our controls' Mozilla event handlers, which needed the &lt;strong&gt;e&lt;/strong&gt; to come as a parameter. So we went for a simple change: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;if&lt;/span&gt; (addEventListener)&amp;nbsp; //Moz check first&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;else&lt;/span&gt; (attachEvent) //IE check second&lt;/p&gt;
&lt;p&gt;and all seemed to work fine.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;That is - until a problem was reported with r.a.d.window in Opera - the window never seemed to execute its onload code!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;As was said, the Opera browser supports both addEventListener and attachEvent methods, it should have remained completely unaffected by the change. But, to our own great surprise, it turned out that it was.&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;While all other events were "hooked" fine, there was a problem with one(!) single event - the onload event.&amp;nbsp;Check this:&lt;/p&gt;
&lt;p&gt;iframe.addEventListener("load", eventHandler, &lt;span&gt;true&lt;/span&gt;); //Does not work under Opera!&lt;br&gt;iframe.attachEvent("onload", eventHandler); //Works under Opera!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;This is how our Atlas change unexpectedly came down on our Opera support.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The moral of the story is: all changes that affect cross-browser functionality, however trivial they are should be extensively tested under &lt;strong&gt;&lt;u&gt;all&lt;/u&gt;&lt;/strong&gt; supported browsers.&lt;/p&gt;</description>
      <link>http://blogs.telerik.com/TervelPeykov/Posts/06-05-09/r_a_d_controls_Event-handing_Atlas_and_Opera.aspx</link>
      <author>Tervel Peykov</author>
      <comments>http://blogs.telerik.com/TervelPeykov/Posts/06-05-09/r_a_d_controls_Event-handing_Atlas_and_Opera.aspx</comments>
      <guid isPermaLink="false">a9b8acc1-e81d-484b-9870-e3a25bb1077a</guid>
      <pubDate>Tue, 09 May 2006 20:33:00 GMT</pubDate>
    </item>
  </channel>
</rss>