Closed Bug 255696 Opened 17 years ago Closed 17 years ago

Accesskey bug in Mozilla and Netscape (i18n)

Categories

(Core :: DOM: Events, defect, P4)

x86
Windows XP
defect

Tracking

()

RESOLVED FIXED
mozilla1.8beta3

People

(Reporter: info, Assigned: smontagu)

References

()

Details

(Keywords: access, intl)

Attachments

(3 files, 2 obsolete files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040206 Firefox/0.8
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040206 Firefox/0.8

I use Windows XP (Swedish) and browsers: Mozilla Firefox 0.8, Netscape 7.1 and
Internet Explorer 6.0.

Accesskey attribute work good in Internet Explorer, but in Firefox and Netscape
exist following bugs:

See my site Most (The Bridge - Magazine for education, science and culture,
Mostar, Bosnia and Herzegovina), encoding="utf-8", table with Accesskey
description (Info page):
http://www.most.ba/info.aspx

Pages in Bosnian/Croatian/Serbian in Latin and Cyrillic alphabet.

Latin pages:
If I use accesskey="f" will work accesskey with Cyrillic letter "c".
Example:
http://www.most.ba/082/000.aspx

Cyrillic pages:
If I use accesskey="b" (in Cyrillic) will work accesskey "1" (number 1).
If I use accesskey="a" (in Cyrillic) will work accesskey "0".
Example:
http://www.most.ba/082/000c.aspx

Sincerely
Haris Tucakovic, Sweden

Reproducible: Always
Steps to Reproduce:
1.
2.
3.
Reporter, can you post a small html testcase? If you can, post it in English or
very simple German -- you know English better than I know Swedish. Can you
explain the problem again?
Component: Accessibility → Keyboard Navigation
(In reply to comment #1)
> Reporter, can you post a small html testcase? If you can, post it in English or
> very simple German -- you know English better than I know Swedish. Can you
> explain the problem again?

Hi Aaron
About Keyboard Navigation (“Hot Key”), see:
http://www.alistapart.com/articles/accesskeys/
http://www.clagnut.com/blog/193/

For Netscape, Mozilla and I. Explorer in Windows: Alt+ Accesskey. For Macintosh:
Ctrl + Accesskey.

This Mozilla’s page is without defined encoding, my code demand Unicode encoding
(Utf-8). You don’t can read code, perhaps (parts with Cyrillic fonts).

Each page has 2 rows with links. Tops links are with letter (open navigation),
foots links are numeral (hidden navigation).

See table: http://www.most.ba/info.aspx
*********************************************
Code parts in Latin pages:
Top:
<a href="http://www.most.ba/" title="Index" accesskey="i"><u>I</u>ndex</a> <b>•</b> 
<a href="../novi.htm" title="Novi broj" accesskey="b">Novi <u>b</u>roj</a> <b>•</b> 
<a href="../arhiva.aspx" title="Arhiva" accesskey="a"><u>A</u>rhiva</a> <b>•</b> 
<a href="../trazi.asp" title="Traži" accesskey="t"><u>T</u>raži</a> <b>•</b> 
<a href="../info.aspx" title="Info" accesskey="f">In<u>f</u>o</a> <b>•</b> 
<a href="../link.aspx" title="Linkovi" accesskey="l"><u>L</u>inkovi</a>
<br />
<a href="../redak.aspx" title="Redakcija" accesskey="r"><u>R</u>edakcija</a>
<b>•</b> 
<a href="../pretp.aspx" title="Pretplata" accesskey="e">Pr<u>e</u>tplata</a>
<b>•</b> 
<a href="../kontakt.aspx" title="Kontakt" accesskey="k"><u>K</u>ontakt</a>
<br />
<a href="000c.aspx" title="&#1035;&#1080;&#1088;&#1080;&#1083;&#1080;&#1094;&#1072;" accesskey="&#1094;">&#1035;&#1080;&#1088;&#1080;&#1083;&#1080;<u>&#1094;</u>&#1072;</a> <b>•</b>
<a href="000t.aspx" title="Transliteration" accesskey="o">Transliterati<u>o</u>n</a>
<br />
Text
<br />
Foot:
<a href="http://www.most.ba/" accesskey="1" title="Index"><u>I</u>ndex</a> <b>•</b> 
<a href="../novi.htm" accesskey="2" title="Novi broj">Novi <u>b</u>roj</a> <b>•</b> 
<a href="../arhiva.aspx" accesskey="3" title="Arhiva"><u>A</u>rhiva</a> <b>•</b> 
<a href="../trazi.asp" accesskey="4" title="Traži"><u>T</u>raži</a> <b>•</b> 
<a href="../info.aspx" accesskey="0" title="Info">In<u>f</u>o</a> <b>•</b> 
<a href="../link.aspx" title="Linkovi"><u>L</u>inkovi</a>
<br />
<a href="../redak.aspx" title="Redakcija"><u>R</u>edakcija</a> <b>•</b> 
<a href="../pretp.aspx" title="Pretplata">Pr<u>e</u>tplata</a> <b>•</b> 
<a href="../kontakt.aspx" accesskey="9" title="Kontakt"><u>K</u>ontakt</a>

If you use Alt+f  then work Alt+(Cyrillic c).
***************************************
Code parts in Cyrillic pages:
Top:
<a href="http://www.most.ba/" title="&#1048;&#1085;&#1076;&#1077;&#1082;&#1089;" accesskey="&#1080;"><u>&#1048;</u>&#1085;&#1076;&#1077;&#1082;&#1089;</a>
<b>•</b> 
<a href="../novic.htm" title="&#1053;&#1086;&#1074;&#1080; &#1073;&#1088;&#1086;&#1112;" accesskey="&#1073;">&#1053;&#1086;&#1074;&#1080; <u>&#1073;</u>&#1088;&#1086;&#1112;</a>
<b>•</b> 
<a href="../arhiva.aspx?izbor=cir" title="&#1040;&#1088;&#1093;&#1080;&#1074;&#1072;"
accesskey="&#1072;"><u>&#1040;</u>&#1088;&#1093;&#1080;&#1074;&#1072;</a> <b>•</b> 
<a href="../trazi_c.asp" title="&#1058;&#1088;&#1072;&#1078;&#1080;" accesskey="&#1090;"><u>&#1058;</u>&#1088;&#1072;&#1078;&#1080;</a> <b>•</b> 
<a href="../info.aspx?izbor=cir" title="&#1048;&#1085;&#1092;&#1086;" accesskey="&#1092;">&#1048;&#1085;<u>&#1092;</u>&#1086;</a>
<b>•</b> 
<a href="../link.aspx?izbor=cir" title="&#1051;&#1080;&#1085;&#1082;&#1086;&#1074;&#1080;" accesskey="&#1083;"><u>&#1051;</u>&#1080;&#1085;&#1082;&#1086;&#1074;&#1080;</a>
<br />
<a href="../redak.aspx?izbor=cir" title="&#1056;&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1112;&#1072;"
accesskey="&#1088;"><u>&#1056;</u>&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1112;&#1072;</a> <b>•</b> 
<a href="../pretp.aspx?izbor=cir" title="&#1055;&#1088;&#1077;&#1090;&#1087;&#1083;&#1072;&#1090;&#1072;"
accesskey="&#1077;">&#1055;&#1088;<u>&#1077;</u>&#1090;&#1087;&#1083;&#1072;&#1090;&#1072;</a> <b>•</b> 
<a href="../kontakt.aspx?izbor=cir" title="&#1050;&#1086;&#1085;&#1090;&#1072;&#1082;&#1090;" accesskey="&#1082;"><u>&#1050;</u>&#1086;&#1085;&#1090;&#1072;&#1082;&#1090;</a>
<br />

<br />
<a href="000.aspx" accesskey="c" title="Latinica">Latini<u>c</u>a</a> <b>•</b>
&#1035;&#1080;&#1088;&#1080;&#1083;&#1080;&#1094;&#1072; <b>•</b> <a href="000t.aspx" accesskey="o"
title="Transliteration">Transliterati<u>o</u>n</a>
Text
<br />
Foot:
<a href="http://www.most.ba/" accesskey="1" title="&#1048;&#1085;&#1076;&#1077;&#1082;&#1089;"><u>&#1048;</u>&#1085;&#1076;&#1077;&#1082;&#1089;</a>
<b>•</b> 
<a href="../novic.htm" accesskey="2" title="&#1053;&#1086;&#1074;&#1080; &#1073;&#1088;&#1086;&#1112;">&#1053;&#1086;&#1074;&#1080; <u>&#1073;</u>&#1088;&#1086;&#1112;</a>
<b>•</b> 
<a href="../arhiva.aspx?izbor=cir" accesskey="3"
title="&#1040;&#1088;&#1093;&#1080;&#1074;&#1072;"><u>&#1040;</u>&#1088;&#1093;&#1080;&#1074;&#1072;</a> <b>•</b> 
<a href="../trazi_c.asp" accesskey="4" title="&#1058;&#1088;&#1072;&#1078;&#1080;"><u>&#1058;</u>&#1088;&#1072;&#1078;&#1080;</a> <b>•</b> 
<a href="../info.aspx?izbor=cir" accesskey="0" title="&#1048;&#1085;&#1092;&#1086;">&#1048;&#1085;<u>&#1092;</u>&#1086;</a>
<b>•</b> 
<a href="../link.aspx?izbor=cir" title="&#1051;&#1080;&#1085;&#1082;&#1086;&#1074;&#1080;"><u>&#1051;</u>&#1080;&#1085;&#1082;&#1086;&#1074;&#1080;</a>
<br />
<a href="../redak.aspx?izbor=cir" title="&#1056;&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1112;&#1072;"><u>&#1056;</u>&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1112;&#1072;</a> <b>•</b> 
<a href="../pretp.aspx?izbor=cir" title="&#1055;&#1088;&#1077;&#1090;&#1087;&#1083;&#1072;&#1090;&#1072;">&#1055;&#1088;<u>&#1077;</u>&#1090;&#1087;&#1083;&#1072;&#1090;&#1072;</a> <b>•</b> 
<a href="../kontakt.aspx?izbor=cir" accesskey="9" title="&#1050;&#1086;&#1085;&#1090;&#1072;&#1082;&#1090;"><u>&#1050;</u>&#1086;&#1085;&#1090;&#1072;&#1082;&#1090;</a>

If you use Alt+(Cyrillic b) then work Alt+1 (number 1).
If you use Alt+(Cyrillic a) then work Alt+0 (number 0).

In Internet Explorer all work correctly.

Sincerely
Haris
Neo, will you look a this?
Assignee: aaronleventhal → nian.liu
Keywords: access
If you can not see text/code, see images:

http://www.most.ba/l.png
This is Latin page.
I give command Alt + f, performs command Alt + Cyrillic c

http://www.most.ba/c.png
This is Cyrillic page.
I give command Alt + Cyrillic b, performs command Alt + 1 (number 1)
I give command Alt + Cyrillic a, performs command Alt + 0 (number 0)

Code is simple and correct, see:
http://www.w3.org/TR/html401/interact/forms.html#adef-accesskey


reporter, please click the 'create a new attachment link'
http://bugzilla.mozilla.org/attachment.cgi?bugid=255696&action=enter

instead of inlining random html into your bug comments.
System: Windows XP (Swedish). Installed support for Croatian (Latin) and
Serbian (Cyrillic).

Each page has 2 rows with links. Top links are with (underlined) letter (open
navigation), foot links are numeral (hidden navigation). Index page have only
top links. Links page is only in Latin.

Latin pages:
If use command Alt + f (in top links), performs command Alt + Cyrillic c (in
top links)

Cyrillic pages:
If use command Alt + Cyrillic b (in top links), performs command Alt + 1
(number 1, in foot links) 
If give command Alt + Cyrillic a (in top links), performs command Alt + 0
(number 0, in foot links)

In Internet Explorer everything is working correctly.
Reporter
Aaron, i do not have a xp machine here:(

reporter, could you reproduce the bug on linux? and if yes, pls. make a test case
I have tested even on Windows 98 (Second edition, Swedish), working in the same
way as XP.

I don’t have installed Linux. I shall install this (within some days) and make a
test case.

Can you make a test case with your configuration (Linux + Mozilla) how works
this (see attachment id=156510)?

Haris
I tested this on XP and asked guy at #mozillazine to press alt+f on link
provided and got confirmation that this bug exists on Linux, too.
Latin BIG Letter F is 0x0046 in Unicode (script uses accesskey="f")
Cyrillic SMALL Letter Tse is 0x0446 in Unicode (same small letter Tse in
accesskey). 
1. It looks like Mozilla is currently using 2 bytes for acceskeys instead of 4.
Other problems: 
2. While you can press Alt+BIG letter and Alt+small letter in Latin with same
result, you cannot do that in Cyrillic (tested on XP)
3. My friend didn't get ANY result when he pressed Alt+Cyrillic character on
Linux, but that looks like another problem... 
Nian, I installed Linux and tested Mozilla on Windows and Linux:
******************************
1. Configurations (Mandrake Linux 10.0 + Mozilla 1.6) or (Windows XP Pro Swedish
or Windows 98 Second Edition Swedish + Mozilla Firefox 0.9.3) give the same results:

1.a. Latin pages:

- If using Alt + "Latin small letter F (position 0066)", performs command
accesskey="Cyrillic small letter Tse (pos. 0446)". Latin capital letter F has
pos. 0046.

- If using Caps Lock, accesskey command – react.

- If using Caps Lock and Shift, accesskey command – react.

1.b. Cyrillic pages:

1.b.1. Small letters:
- If using Alt + "Cyrillic small letter A (pos. 0430)", performs command
accesskey="Digit Zero (pos. 0030)".
- If using Alt + "Cyrillic small letter Be (pos. 0431)", performs command
accesskey="Digit One (pos. 0031)".

1.b.2. Capital letters:
- If using Shift + Alt + accesskey, marks the first same letter (capital or
small) in links, but accesskey command – NOT react.

- If using Caps Lock, accesskey command – NOT react.

- If using Caps Lock and Shift, accesskey command – react.

******************************
2. Configuration (Mandrake Linux 10.0 + Mozilla 1.6):

- Special Serbian and Macedonian Cyrillic characters displays incorrect:
- Cyrillic capital letter Dje (pos. 0402): displays Cyrillic capital letter Te
(pos. 0422);
- Cyrillic capital letter Lje (pos. 0409): displays Cyrillic capital letter El
(pos. 041B);
- Cyrillic capital letter Nje (pos. 040A): displays Cyrillic capital letter En
(pos. 041D);
- Cyrillic capital letter Tshe (pos. 040B): displays Cyrillic capital letter Te
(pos. 0422);

- Cyrillic small letter Dje (pos. 0452): displays Cyrillic small letter Te (pos.
0442);
- Cyrillic small letter Lje (pos. 0459): displays Cyrillic small letter El (pos.
043B);
- Cyrillic small letter Nje (pos. 045A): displays Cyrillic small letter En (pos.
043D);
- Cyrillic small letter Tshe (045B): displays Cyrillic small letter Te (0442);

- Configuration (Mandrake Linux 10.0 + Konqueror 3.2.0):
Special Serbian and Macedonian Cyrillic characters displays correct.

- Konfiguracija (Windows XP Pro Swedish + Mozilla Firefox 0.9.3):
Special Serbian and Macedonian Cyrillic characters displays correct.

******************************
Comments:

A. Petar Bukvic (see Additional Comment #9) has excellent conclusion: “It looks
like Mozilla is currently using 2 bytes for acceskeys instead of 4”.

B. Latin pages working on Linux and Windows in the same way (see previous comment).

C. Cyrillic pages have this bug and several other bugs.
Petar,

i'm crazy busy on other issues now. would you like take this bug?
Summary: Accesskey bug in Mozilla and Netscape → Accesskey bug in Mozilla and Netscape (i18n)
Keywords: intl
Priority: -- → P4
I just came across this through code inspection, and I think it is
straightforward to fix it.
Assignee: nian.liu → smontagu
HTML code is absolutely correct, but this is bug in Mozilla, see comment 9.1. or
10.A.
Haris
Attached file reduced test case (obsolete) —
Attached patch Patch (obsolete) — Splinter Review
Attachment #187659 - Flags: superreview?(roc)
Attachment #187659 - Flags: review?(roc)
Attached file reduced test case
The testcase seems to have got corrupted during uploading first time round.
Attachment #187658 - Attachment is obsolete: true
(In reply to comment #13)
> HTML code is absolutely correct, but this is bug in Mozilla, see comment 9.1. or
> 10.A.
> Haris

Yes, you're right. I meant code inspection of the Mozilla source.
Comment on attachment 187659 [details] [diff] [review]
Patch

Cancelling review requests. Sorry for the line noise.
Attachment #187659 - Flags: superreview?(roc)
Attachment #187659 - Flags: review?(roc)
Attached patch Better patchSplinter Review
Attachment #187659 - Attachment is obsolete: true
Attachment #187809 - Flags: superreview?(roc)
Attachment #187809 - Flags: review?(roc)
Status: UNCONFIRMED → NEW
Ever confirmed: true
Comment on attachment 187809 [details] [diff] [review]
Better patch

OK, but is it guaranteed that only BMP characters need case conversion?

Please file a followup bug to add a UCS4 case conversion function and use it
here.
Attachment #187809 - Flags: superreview?(roc)
Attachment #187809 - Flags: superreview+
Attachment #187809 - Flags: review?(roc)
Attachment #187809 - Flags: review+
That would be bug 210501.
Comment on attachment 187809 [details] [diff] [review]
Better patch

Asking approval for this serious international accessibility bug.
Attachment #187809 - Flags: approval-aviary1.1a2?
Attachment #187809 - Flags: approval-aviary1.1a2? → approval-aviary1.1a2+
Checked in
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Component: Keyboard Navigation → DOM: Events
Flags: review+
Product: Firefox → Core
Target Milestone: --- → mozilla1.8beta3
Version: unspecified → Trunk
You need to log in before you can comment on or make changes to this bug.