Re: [Mailman-Developers] Accessible DOM manipulations

2006-07-07 Thread Ian Eiloart


--On 6 July 2006 16:45:26 -0400 emf [EMAIL PROTECTED] wrote:


 Can you help me understand the basis for this claim? I have looked into
 the matter somewhat deeply and this works in every browser I have come
 across that supports JavaScript:

And the ones that don't?


-- 
Ian Eiloart
IT Services, University of Sussex
___
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 
http://www.python.org/cgi-bin/faqw-mm.py?req=showfile=faq01.027.htp


Re: [Mailman-Developers] Accessible DOM manipulations

2006-07-06 Thread Brad Knowles
Ethan wrote:

 One example is keeping extraneous text hidden until it is selected; I
 imagine that someone using a screen reader/portable device would
 appreciate being able to read a overview page variant and then being
 able to expand as necessary.

I would much prefer to do this without JavaScript.  Because you can't
guarantee that you know the way that page would be rendered if you send
all sorts of hidden text that isn't shown until such time as someone
does something to make it appear, and you can't control what kinds of
mailicious cross-scripting attacks people may throw at you, it's best to
simply not send anything that the user cannot currently see.

-- 
Brad Knowles, [EMAIL PROTECTED]

Those who would give up essential Liberty, to purchase a little
temporary Safety, deserve neither Liberty nor Safety.

 -- Benjamin Franklin (1706-1790), reply of the Pennsylvania
 Assembly to the Governor, November 11, 1755

  LOPSA member since December 2005.  See http://www.lopsa.org/.
___
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 
http://www.python.org/cgi-bin/faqw-mm.py?req=showfile=faq01.027.htp


Re: [Mailman-Developers] Accessible DOM manipulations

2006-07-06 Thread Bryan Carbonnell
On 7/6/06, Brad Knowles [EMAIL PROTECTED] wrote:
 Ethan wrote:

  One example is keeping extraneous text hidden until it is selected; I
  imagine that someone using a screen reader/portable device would
  appreciate being able to read a overview page variant and then being
  able to expand as necessary.

 I would much prefer to do this without JavaScript.  Because you can't
 guarantee that you know the way that page would be rendered if you send
 all sorts of hidden text that isn't shown until such time as someone
 does something to make it appear, and you can't control what kinds of
 mailicious cross-scripting attacks people may throw at you, it's best to
 simply not send anything that the user cannot currently see.

I have to agree with Brad on this.

An option may be to give the site admin the ability to turn the JS
on/off site wide with a mm_cfg.py variable.

-- 
Bryan Carbonnell - [EMAIL PROTECTED]
Life's journey is not to arrive at the grave safely in a well
preserved body, but rather to skid in sideways, totally worn out,
shouting What a great ride!
___
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 
http://www.python.org/cgi-bin/faqw-mm.py?req=showfile=faq01.027.htp


Re: [Mailman-Developers] Accessible DOM manipulations

2006-07-06 Thread Laura Carlson
Ethan wrote:

 One example is keeping extraneous text hidden until it is
 selected; I imagine that someone using a screen reader/portable
 device would appreciate being able to read a overview page
 variant and then being able to expand as necessary.

An overview at the top of a page is good usability. This is referred to 
as inverted pyramid [1]. The inverted pyramid is a type of writing 
style where conclusions are presented first not last. It begins with a 
conclusion then moves to the key information followed by background 
information. Usability studies show that web users want instant 
gratification. That is why the inverted pyramid style is important.

Brad Knowles wrote:

 I would much prefer to do this without JavaScript.  Because you can't
 guarantee that you know the way that page would be rendered if you
 send all sorts of hidden text that isn't shown until such time as
 someone does something to make it appear, and you can't control what
 kinds of mailicious cross-scripting attacks people may throw at you,
 it's best to simply not send anything that the user cannot currently
 see.

Bryan Carbonnell wrote:

 I have to agree with Brad on this.

 An option may be to give the site admin the ability to turn the JS
 on/off site wide with a mm_cfg.py variable.

Default set to off?

For the non JS option maybe provide a table of contents or overview at 
the top of the page with plain old anchors to jump down to detailed 
information.

Personally, I usually also dislike expandable/collapsible content is 
that relies on user action. But I haven't used Ethan's version yet. 
Hope it is keyboard friendly.

BTW, some degree of accessibility checking for the app can be done 
simply by using keyboard techniques like tabbing (using no mouse). 
Blind users often browse web sites by tabbing from heading to heading 
or link to link.

Keyboard techniques, such as tabbing through a page (tabbing through a 
page usually goes in the same order as a voice browser would read), is 
a good quick test. By tabbing you can check for any elements that 
cannot be accessed with the keyboard or that are in an illogical 
tabbing order.

The first exercise I have my Web Accessibility class do is disable 
their browser. The the idea is to give them an idea as to what it's 
like to have access to the web restricted. It's goal is to help them to 
understand what it feels like, and hopefully get them thinking about 
how these problems can be overcome.

These are their instructions:

begin exercise

No, don't unplug the phone cord or Ethernet connection! Instead we are 
going to selectively disable certain features in your web browser.

1. Go into your preferences in your browser and turn off any and all of 
the following, if you can. (You may have to poke around a bit in 
preferences or internet settings, and not all browsers will allow you 
to disable everything. But the general intent is to turn off as much as 
you can.)

- Images
- Sound
- Java
- JavaScript
- Style Sheets

2. Take your mouse/track ball/pointing device, unplug it, and throw it 
out the window. Okay, don't really do that, you might not be able to 
find it again. But don't use the mouse for the purpose of this exercise.

3. Look up the keyboard shortcuts for your browser in the help files or 
manual pages. Oops, I should have told you to do that before removing 
the mouse. Well, just remember that people with disabilities aren't 
magically born knowing how to run computers either, and if the help 
system is not accessible, they are in as much trouble as you are now!

4. With your disabled browsing system, look at five different web 
sites and attempt to use them. These should meet the following criteria:
- They are sites you've used before.
- They are sites where you can actually do something, and that 
something is of interest to you personally.
- They are different types of sites (not all news, not all e-commerce, 
not all personal pages, etc). Look at a variety of sites.
- Try to use these sites as you normally would, and record where you 
encountered any difficulties.

What Was Your Experience Like?

 1. What sites did you visit?
 2. Were you able to perform your normal tasks?
 3. What kind of obstacles, if any, did you encounter in accessing 
those sites?

/end exercise

Best Regards,
Laura

[1] http://www.d.umn.edu/goto/usability#pyramid
___
Laura L. Carlson
Information Technology Systems and Services
University of Minnesota Duluth
Duluth, MN U.S.A. 55812-3009
http://www.d.umn.edu/goto/webdesign/
___
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 

Re: [Mailman-Developers] Accessible DOM manipulations

2006-07-06 Thread Bryan Carbonnell
On 7/6/06, Laura Carlson [EMAIL PROTECTED] wrote:

  An option may be to give the site admin the ability to turn the JS
  on/off site wide with a mm_cfg.py variable.

 Default set to off?

That'd be my preference.

-- 
Bryan Carbonnell - [EMAIL PROTECTED]
Life's journey is not to arrive at the grave safely in a well
preserved body, but rather to skid in sideways, totally worn out,
shouting What a great ride!
___
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 
http://www.python.org/cgi-bin/faqw-mm.py?req=showfile=faq01.027.htp


Re: [Mailman-Developers] Accessible DOM manipulations

2006-07-06 Thread emf
Brad Knowles wrote:

 I would much prefer to do this without JavaScript.  Because you can't
 guarantee that you know the way that page would be rendered

Can you help me understand the basis for this claim? I have looked into 
the matter somewhat deeply and this works in every browser I have come 
across that supports JavaScript:

document.getElementById('foo').style.display = 'none';

An intelligent layout allows you to minimize the amount of page 
rejiggering that goes on when you display text.

Visual tests using Greasemonkey allow you to see all the visual states a 
page can get in (including different sized displays) to ensure you don't 
get into an unpleasant corner.

Perhaps you mean to say that the variety of CSS implementations prevents 
me from knowing how a UA will render the page. Strictly speaking, this 
is true; pragmatically speaking, there exists suitable CSS that works in 
all current browsers that I know of.

 if you send
 all sorts of hidden text that isn't shown until such time as someone
 does something to make it appear,

The document with all the hidden text shown will be something like a 
full detail view; after all, I've promised the page will work fine 
with JavaScript off.

 and you can't control what kinds of
 mailicious cross-scripting attacks people may throw at you,

I am unaware of any cross site scripting (XSS) attacks that can occur 
when a linked-in stylesheet uses the event model to alter the style of a 
element.

Perhaps you are referring to the approach of using some mechanism 
(XMLHttpRequest or naive furl() type stuff) to fetch new bits to go into 
a page. This definitely a risk, and one I'm disinterested in playing with.

I intend to use XMLHttpRequest to fetch JSON messages like preferences 
saved from the server. These messages will be carefully scrubbed and 
come only from server-generated translations, rendering them an 
improbable source of XSS.

I also intend to use it for one-way communication where the client 
informs the server that something has changed via JSON. As with all form 
submissions, each JSON submission will have to come with the appropriate 
hashcash-esque validation element to be considered to come from the user.

The UI benefit that drives the above choice is that I can provide the 
user with the UI state of the web app at the last time they used it, no 
matter what machine they come from.

 it's best to simply not send anything that the user cannot currently see.

I'm not sure I understand this principle.

Most people have internet bandwidth that is inferior to the rendering 
speed of their browser, and a monitor that is smaller than most page 
content; some people (like those using screen readers) have essentially 
a 2d/linear monitor.

This suggests that sending fewer, larger chunks is preferable to 
sending many smaller chunks when the user will be aware of the load 
time. The way modern rendering engines work makes 'hidden' text *much* 
faster to load during initial page rendering than it would if it were 
all displayed.

One use case is where the new user clicks on all the help buttons to 
learn what's going on; a delay rendering help increases exploration cost.

Another one is the way people read on the web. Nielsen [1] and many 
others in the usability field have shown that people scan, looking for 
key words, rather than reading. The fewer words the shorter the seek 
time and the more likely the user will do an exhaustive search of the 
page for what they're looking for.

[1] http://www.useit.com/alertbox/9710a.html

When it comes to screen readers, text *is* space; sighted individuals 
can skip big swaths of text with a single saccade, but a blind user must 
give voice to enough of the text to hear where they're going.

This makes scanning text both temporally and cognitively more expensive 
than it is for sighted users.

As screen readers *do* respect hidden/shown elements, I can 
significantly improve the user experience for them, while making life 
easier for visual uses as well.

On somewhat of a side note, I have heard a certain amount of antipathy 
towards JavaScript in this forum. I know it was unpleasant in the late 
'90s, but it is much better and more cross-browser these days.

I'm fairly certain that *some* author-initiated manipulation of a user's 
experience of a node set is obligatory in any conceivable Web; the only 
alternative I can see to using JavaScript or another interpreted 
language would be using something like XSLT, a horror that I shrink from 
even contemplating.

~ethan fremen


___
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 

Re: [Mailman-Developers] Accessible DOM manipulations

2006-07-06 Thread emf
Bryan Carbonnell wrote:

 I have to agree with Brad on this.
 
 An option may be to give the site admin the ability to turn the JS
 on/off site wide with a mm_cfg.py variable.

I'm a little reluctant to add another bit flip to mm_cfg when you'll be 
able to delete the .js files or forbid access to the js directory in 
apache and get what you want.

Or you could avoid subjecting all your users to your preference and use 
the no-JS variant that will always be available, or just turn JS off in 
your browser.

Can you help me understand your opposition to Javascript in a webpage 
you serve? Something specific rather than in principle, if you would be 
so kind; I often have a hard time applying abstract concepts to code I'm 
in the process of writing.

Thanks for your help,

~ethan fremen

___
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 
http://www.python.org/cgi-bin/faqw-mm.py?req=showfile=faq01.027.htp


Re: [Mailman-Developers] Accessible DOM manipulations

2006-07-06 Thread Bryan Carbonnell
On 7/6/06, emf [EMAIL PROTECTED] wrote:
 Bryan Carbonnell wrote:

  I have to agree with Brad on this.
 
  An option may be to give the site admin the ability to turn the JS
  on/off site wide with a mm_cfg.py variable.

 I'm a little reluctant to add another bit flip to mm_cfg when you'll be
 able to delete the .js files or forbid access to the js directory in
 apache and get what you want.

 Or you could avoid subjecting all your users to your preference and use
 the no-JS variant that will always be available, or just turn JS off in
 your browser.

 Can you help me understand your opposition to Javascript in a webpage
 you serve? Something specific rather than in principle, if you would be
 so kind; I often have a hard time applying abstract concepts to code I'm
 in the process of writing.

Ethan,

For me it's nothing specific. It's more philosophical. I am a very
minimalist when it comes to the 'net. Plain text e-mail and no
scripting or embeded audio/video on web pages. I think the content of
the page should stand on its own legs and not rely on fancy tricks
to make it appealing.

I've seen WAY to much bad scripting (and I'm not implying that the
code you are going to write is going to be bad) to actually want to
implement and Javascript.

I also know that quite a few of my users are going to be up in arms if
scripting gets added to the pages. I just want to have the option to
NOT use in in MM. I realize that I can just delete the JS file or
disallow it with Apache, but I feel that since this is a MM endeavour
I should be able to control it within MM and not have to resort to
things like you mention to disable the JS.

I know this sounds negative, it's not. I'm really glad the UI is
getting overhauled. I have done what I could with the XHTML/CSS patch
that I wrote, but I know the UI could be a LOT better.

Just my $0.02

-- 
Bryan Carbonnell - [EMAIL PROTECTED]
Life's journey is not to arrive at the grave safely in a well
preserved body, but rather to skid in sideways, totally worn out,
shouting What a great ride!
___
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 
http://www.python.org/cgi-bin/faqw-mm.py?req=showfile=faq01.027.htp


Re: [Mailman-Developers] Accessible DOM manipulations

2006-07-06 Thread Barry Warsaw
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Jul 6, 2006, at 4:45 PM, emf wrote:

 On somewhat of a side note, I have heard a certain amount of antipathy
 towards JavaScript in this forum. I know it was unpleasant in the late
 '90s, but it is much better and more cross-browser these days.

I'm sure a lot of that comes from me, inspired by early experience  
and my own general paranoid dinosaurism.  OTOH, I remember Guido  
telling me a few years ago that I might as well give up on that one,  
and so I have -- mostly.  That's why I love NoScript so much :).

I'm no web developer expert by a long shot, but I've been following  
the discussions and istm that Ethan is striking a reasonable balance  
and is being extremely diligent in his research.  I for one am quite  
eager to see what he comes up with!

- -Barry

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.3 (Darwin)

iQCVAwUBRK2w3HEjvBPtnXfVAQKNWgP+Okh3nAD4DmkvIA8FyvVw5z301gyEIiKS
pzR2qKN3Rgl6uppBV0cvT09VQf9tVEFqnGOF2kw116tZ7CS8QjccAbend5mY0rlh
grXIVahKR0EuLvjODronVPJ4fSPCd4oul5alZklXxmOJXyDTEtCmhUdwaeHsvM7P
1359VTu+YGA=
=mjCZ
-END PGP SIGNATURE-
___
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 
http://www.python.org/cgi-bin/faqw-mm.py?req=showfile=faq01.027.htp