Great news. Thanks I will download the nightly build and test.
Announcement
Collapse
No announcement yet.
X
-
We have other cases where the listgrid has results and once the tab goes into the record, the next tab skips the rest of the form and goes directly to the browser address bar.
NOTE: this was working in Nov 11 2011 build
Code:isc.screenReader = true; isc.ListGrid.create({ ID: "countryList", width:500, height:300, alternateRecordStyles:true, data: countryData, fields:[ {name:"countryCode", title:"Flag", width:50, align:"right", type:"image", imageURLPrefix:"flags/16/", imageURLSuffix:".png"}, {name:"independence", title:"independence", filterEditorType: "MiniDateRangeItem"}, {name:"countryName", title:"Country"}, {name:"capital", title:"Capital"} ], autoFetchData: true, showFilterEditor: true }); isc.DynamicForm.create({ID:"testME", canFocus: true,top:400,fields:[{type:"text", title:"test"}]});
Last edited by acarur01; 23 Nov 2011, 12:16.
Comment
-
We're looking into this. We don't see a change since the Nov 11 build that would account for this behavior changing but we do see the bug in our latest codebase, so we'll work from there.
One note: We're running the example in a standalone HTML file (with the 'countryData' copied and pasted in) - we're not running it in the feature explorer as that changes the order in which components are created and rendered, etc in a way that can complicate debugging this sort of thing.
We'll probably have an answer for you next week.
Comment
-
Scenario #1 - only happens in IE8
1. Tab to the list grid body.
2. Press “down” or “space” to enter the edit mode for any record.
3. Press “Enter” to finish the edit
4. Tab to the Apply button and press “space” or “enter” to refresh the data in the grid list
5. Tab again. The focus is on the “logout” button.
Try the same steps again, but this time skip steps 2 and 3 you'll notice that the focus does go to the text field which is the behaviour we want
Scenario #2 - happens in both IE8 and Firefox6.0
1. Tab to the list grid body.
2. Tab to the Apply button and press “space” or “enter” to refresh the data in the grid list
3. Tab again. The focus is on the textfield.
4. Continue tabbing until the focus is back on the "Logout" button. You'll notice that the focus goes to the listgrid header instead of the filter field.
5. Tab again. Now the focus is on the first header.
6. Tab again and now the focus is in the filter field - tab through all the filter fields, this time it skips the header and goes directly to the listgrid body then the apply button.
Code:isc.screenReader = true; var testData2=[ {pk:0, orderID:8620, itemDescription:"18 inch flat panel monitor", category:"Hardware", shipDate:new Date(2009,11,11), quantity:2 , unitPrice:375 }, {pk:1, orderID:629, itemDescription:"Office Productivity Suite", category:"Software", shipDate:new Date(2009,12,10), quantity:15 , unitPrice:64.99 }, {pk:2, orderID:1264, itemDescription:"Office Productivity Suite", category:"Software", shipDate:new Date(2009,12,20), quantity:2 , unitPrice:64.99 }, {pk:3, orderID:7100, itemDescription:"USB Ergonomic Keyboard", category:"Hardware", shipDate:new Date(2009,10,20), quantity:6 , unitPrice:99.99 }, {pk:4, orderID:9647, itemDescription:"Consulting Services", category:"Services", shipDate:new Date(2009,12,21), quantity:10 , unitPrice:100 }, {pk:5, orderID:8468, itemDescription:"USB Optical Mouse", category:"Hardware", shipDate:new Date(2009,10,10), quantity:5 , unitPrice:29.99 }, {pk:6, orderID:9496, itemDescription:"Off-site Training", category:"Services", shipDate:new Date(2010,1,1), quantity:35 , unitPrice:80 }, {pk:7, orderID:5124, itemDescription:"USB Stereo Headset", category:"Hardware", shipDate:new Date(2009,10,20), quantity:1 , unitPrice:69.99 }, {pk:8, orderID:1799, itemDescription:"Office Application Suite", category:"Software", shipDate:new Date(2009,11,2), quantity:22 , unitPrice:30 }, {pk:9, orderID:7020, itemDescription:"Consulting Services", category:"Services", shipDate:new Date(2009,12,20), quantity:100 , unitPrice:80 }]; isc.DataSource.create({ ID:"orderItemLocal2", clientOnly:true, testData:testData2, fields:[ {name:"pk", type:"sequence", primaryKey:"true", hidden:"true"}, {name:"orderID", type:"integer", canEdit:false, title:"Order ID", pluralTitle:"Orders"}, {name:"itemDescription", type:"text", title:"Description"}, {name:"category", type:"text", title:"Category"}, {name:"shipDate", type:"date", title:"Ship Date"}, {name:"quantity", type:"integer", title:"Quantity"}, {name:"unitPrice", type:"float", title:"Price"} ] }); isc.IButton.create({ top: 20, left: 750, title: "Logout", click: "isc.say('Applied!')" }); isc.ListGrid.create({ ID: "companyList", top: 50, left:100, width:600, height: 300, alternateRecordStyles:true, autoFetchData:true, dataSource:orderItemLocal2, showAllRecords:true, canEdit: true, selectOnEdit: true, showFilterEditor: true, fields:[ {name:"orderID"}, {name:"itemDescription"}, {name:"category"}, {name:"shipDate"}, {name:"quantity"}, {name:"unitPrice"} ], editEvent: "click" }); isc.IButton.create({ top: 380, left: 600, title: "Apply", click: function() { companyList.saveEdits(); companyList.setDataSource(orderItemLocal2); companyList.fetchData(); } }); isc.DynamicForm.create({ ID: "DF", top: 410, left: 100, width: 250, fields: [ {title: "Username", type: "text" } ] });
Last edited by acarur01; 30 Nov 2011, 09:21.
Comment
-
Issue #1 confirmed. A workaround is to call "companyList.filterEditor.clear();companyList.filterEditor.draw()" after the call to setDataSource() but we'll make a framework change so this isn't necessary.
Still looking at Issue #2
EDIT:
Sorry - got the issue #s reversed. 2 is confirmed and can be fixed by the filterEditor.clear() / filterEditor.draw() calls. Still looking at Issue #1.
Comment
-
On Issue #1
We see the issue and have spent some time investigating it.
Fundamentally we're encountering a native browser issue where redrawing one set of elements in the DOM (the grid) is effecting focus on an unrelated element (the button). It only occurs in ScreenReader mode, only on this browser.
From our testing this appears to not be an issue in the 8.2 branch - but it's very difficult to resolve in 8.1 branch in a way that is safe and given that we're on the cusp of posting an official 8.1.1 release we're considering this a wont-fix there for now.
Therefore we'd suggest the following workaround -- you can explicitly force focus back onto the button via a delayed call to focus -- something like this:
Code:isc.IButton.create({ top: 380, left: 600, title: "Apply", click: function() { companyList.setDataSource(orderItemLocal2); companyList.fetchData(); this.delayCall("focus"); } });
Comment
Comment