     /**
      *  @private
      */
+    private function makeRowString(dgAccInfo:ItemAccInfo):String
+    {
+        var rowString:String = "";
+        if ((dgAccInfo.isCellMode && dgAccInfo.reachableColumnIndex == 0) || !dgAccInfo.isCellMode)
+        {
+            var resourceManager:IResourceManager = ResourceManager.getInstance();
+            rowString = resourceManager.getString("components", "rowMofN");
+            rowString = rowString.replace("%1", dgAccInfo.reachableRowIndex + 1).replace("%2", dgAccInfo.reachableRowCount);
+        }
+        return rowString;
+    }
+
+    /**
+     *  @private
+     */
     private function cellName(rowObject:Object, columnIndex:int):String
     {
         var item:Object = rowObject;
-        if (item is String)
-            return "" + item;
         var dataGrid:DataGrid = DataGrid(master);
         var columns:IList = dataGrid.columns;
         if (!columns)

import spark.events.GridCaretEvent;
import spark.events.GridSelectionEvent;
import spark.events.GridSelectionEventKind;
import spark.skins.spark.DefaultGridItemRenderer;

use namespace mx_internal;

    mx_internal static function createAccessibilityImplementation(
                                component:UIComponent):void
    {
        // attach AccImpl to placeholder focusOwner component so that item editors
        // are exposed as sibling of the dataGrid allow for correct exposure in MSAA
        // and the ability for iSimpleTextSelection interface to work as it requires 
        // that the stage focused component be the same MSAA component 
        var accImpl:DataGridAccImpl = new DataGridAccImpl(component);
        DataGrid(component).focusOwner.accessibilityImplementation = accImpl;
    }
    
    //--------------------------------------------------------------------------
    //
    //  Constructor
