Home All Groups Group Topic Archive Search About

Web Standards Compliance - Autopostback / Javascript off

Author
2 May 2006 10:47 AM
Mike Owen
Hi all,

I have an application where the user selects the colour of the clothing item
they want to buy from a dropdownlist whose AutoPostBack="True", once selected
the page is automatically posted back, and another dropdownlist is updated
showing the sizes available for the colour selected.

However I want the page to conform to the accessibility guidelines (WCAG
guideline 6) that specify that the page must continue to work with JavaScript
turned off, but of course when I do this the page does not get automatically
posted back and hence the size dropdownlist updated when a new colour is
selected.

Does anyone know a quick / easy way around this problem as I don't really
want to redesign the page.


Thanks, Mike.

Author
3 May 2006 3:28 AM
Steven Cheng[MSFT]
Hi Mike,

Thank you for posting.

Regarding on the ASP.NET page's control postback, it could only be
triggered by client user's interactive operation or client-side scripts.
There is no other web standards which can make web page explicitly postback
in action to a certain html element's change.  Actually, as for the
DropDownList, it is using the html <select> element's client-side
"onchange" event to trigger the page's postback(through script).  For the
currently webstandard supports in ASP.NET, it is limited to UI accessiblity
features:

http://msdn.microsoft.com/asp.net/reference/infrastructure/default.aspx?pull
=/library/en-us/dnaspp/html/aspnetusstan.asp

Regards,

Steven Cheng
Microsoft Online Community Support


==================================================

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

==================================================


This posting is provided "AS IS" with no warranties, and confers no rights.



Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
Are all your drivers up to date? click for free checkup

Author
3 May 2006 10:30 AM
Mike Owen
Thanks for that Steven.

I guess the only way of doing it without changing the page too much would be
to:

1/  Detect from the server whether Javascript is enabled in the clients
Browser.

2/  If Javascript is not enabled - Add an appropriate button telling the
user to click the button to (submit the form) show the sizes for the colour
selected.

Is there an easy cross Browser way of detecting whether Javascript is
enabled in the clients Browser from the server?


Thanks, Mike.

Show quoteHide quote
"Steven Cheng[MSFT]" wrote:

> Hi Mike,
>
> Thank you for posting.
>
> Regarding on the ASP.NET page's control postback, it could only be
> triggered by client user's interactive operation or client-side scripts.
> There is no other web standards which can make web page explicitly postback
> in action to a certain html element's change.  Actually, as for the
> DropDownList, it is using the html <select> element's client-side
> "onchange" event to trigger the page's postback(through script).  For the
> currently webstandard supports in ASP.NET, it is limited to UI accessiblity
> features:
>
> http://msdn.microsoft.com/asp.net/reference/infrastructure/default.aspx?pull
> =/library/en-us/dnaspp/html/aspnetusstan.asp
>
> Regards,
>
> Steven Cheng
> Microsoft Online Community Support
>
>
> ==================================================
>
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
>
> ==================================================
>
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
>
> Get Secure! www.microsoft.com/security
> (This posting is provided "AS IS", with no warranties, and confers no
> rights.)
>
>
Author
4 May 2006 6:56 AM
Steven Cheng[MSFT]
Thanks for the response Mike,

As for client-side javascript support detection, you can use the following
property of the ASP.NET HttpRequest class:

#HttpRequest.Browser Property
http://msdn2.microsoft.com/en-us/library/system.web.httprequest.browser.aspx

It contains some property indicate the client-browser's capability.
However, this info only indicate whether the client browser support this
feature, client user can still block or disable the script function
manually(even the browser support it). In such cases, you can use a certain
page to run a test script to detect whether the client has blocked script
functionality.

Regards,

Steven Cheng
Microsoft Online Community Support


==================================================

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

==================================================


This posting is provided "AS IS" with no warranties, and confers no rights.



Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
Author
5 May 2006 4:58 PM
Mike Owen
Thanks again Steven.

Can you guide me as to what sort of 'test script' you are talking about. 
Presumably there has to be 'test script' code on both the client and server?

Cheers, Mike.

Show quoteHide quote
"Steven Cheng[MSFT]" wrote:

> Thanks for the response Mike,
>
> As for client-side javascript support detection, you can use the following
> property of the ASP.NET HttpRequest class:
>
> #HttpRequest.Browser Property
> http://msdn2.microsoft.com/en-us/library/system.web.httprequest.browser.aspx
>
> It contains some property indicate the client-browser's capability.
> However, this info only indicate whether the client browser support this
> feature, client user can still block or disable the script function
> manually(even the browser support it). In such cases, you can use a certain
> page to run a test script to detect whether the client has blocked script
> functionality.
>
> Regards,
>
> Steven Cheng
> Microsoft Online Community Support
>
>
> ==================================================
>
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
>
> ==================================================
>
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
>
> Get Secure! www.microsoft.com/security
> (This posting is provided "AS IS", with no warranties, and confers no
> rights.)
>
>
>
>
>
Author
8 May 2006 2:53 AM
Steven Cheng[MSFT]
Thanks for your followup Mike,

The "test script" I mentioned of course means client-side
script(javascript, jscript ...). For example, you can put an html <input
type="hidden" ..../> on the page. Then, your test script will try changing
its value through the below like code:

document.getElementById("hiddenfieldid").value = "xxxx";
document.forms[0].submit();

Then, at server-side, we can check the hidden field's value to see whether
it is the changed value(by client-script). If its value is unchanged, that
means the client-script is not executed correctly due to some certain
cause(maybe script is blocked...).

Hope this help clarify some.

Regards,

Steven Cheng
Microsoft Online Community Support


==================================================

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

==================================================


This posting is provided "AS IS" with no warranties, and confers no rights.



Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Bookmark and Share