Bug 77884 - [Qt][WK2] Can't use TAB key to navigate on webpage links
Summary: [Qt][WK2] Can't use TAB key to navigate on webpage links
Status: RESOLVED INVALID
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Qt (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 95329
  Show dependency treegraph
 
Reported: 2012-02-06 11:03 PST by Hugo Parente Lima
Modified: 2014-02-03 03:20 PST (History)
1 user (show)

See Also:


Attachments
Patch (1.27 KB, patch)
2012-02-06 11:10 PST, Hugo Parente Lima
no flags Details | Formatted Diff | Diff
Patch (10.18 KB, patch)
2012-02-08 11:50 PST, Hugo Parente Lima
no flags Details | Formatted Diff | Diff
Patch (12.73 KB, patch)
2012-02-08 13:20 PST, Hugo Parente Lima
hausmann: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Hugo Parente Lima 2012-02-06 11:03:49 PST
How to reproduce:

Open MiniBrowser on desktop mode and try to change the focus pressing the Tab key, it must behave like QtTestBrowser.
Comment 1 Hugo Parente Lima 2012-02-06 11:10:12 PST
Created attachment 125670 [details]
Patch
Comment 2 Caio Marcelo de Oliveira Filho 2012-02-06 13:09:46 PST
Hugo, did you checked the LayoutTests after this?

I think this might cause some LayoutTests to fail. The support for override preference that enabled/disable this is not done yet for WK2. So if the test use layoutTestController to change this preference, it won't work. Could you check that. Grepping for "WebKitTabToLinksPreferenceKey" might give you a hint.
Comment 3 Hugo Parente Lima 2012-02-06 13:41:36 PST
Good to know, I'll take a look.
Comment 4 Hugo Parente Lima 2012-02-06 13:43:02 PST
I just removed the "review?" flag until I check the issue with the layout tests.
Comment 5 Hugo Parente Lima 2012-02-08 11:50:07 PST
Created attachment 126128 [details]
Patch
Comment 6 Hugo Parente Lima 2012-02-08 13:20:46 PST
Created attachment 126141 [details]
Patch
Comment 7 Simon Hausmann 2012-02-09 00:27:49 PST
Comment on attachment 126141 [details]
Patch

Making the tab preference available to us in WK2 makes sense to me, but turning this into a WebCore::Setting sounds like something that should be dealt with in a separate change.

I'm not sure the move to WC::Settings is actually worth it, but if it's done then I suppose it should replace the existing ChromeClient's keyboardUIMode(). Having both, a WC::Setting _and_ the virtual keyboardUIMode() would be wrong IMHO.
Comment 8 Hugo Parente Lima 2012-02-09 10:02:00 PST
(In reply to comment #7)
> (From update of attachment 126141 [details])
> Making the tab preference available to us in WK2 makes sense to me, but turning this into a WebCore::Setting sounds like something that should be dealt with in a separate change.
> 
> I'm not sure the move to WC::Settings is actually worth it, but if it's done then I suppose it should replace the existing ChromeClient's keyboardUIMode(). Having both, a WC::Setting _and_ the virtual keyboardUIMode() would be wrong IMHO.

I don't know if it can fully replace the virtual keyboardUIMode() because this virtual returns a enum with 3 possible values, replacing it by the value stored on WC::Settings would mean remove the KeyboardAccessFull option from keyboardUIMode().

The tab preference is stored per webkit port on ChromeClient implementations, as WK2 have their own and unique ChromeClient implementation, ugly hacks like the ones used on other ports to check if the tab preference is on or off isn't possible, e.g. some ports just put a #ifdef and get the tab preference value directly from a DRT support class.

KeyboardAccessFull seems to be used only on Mac ports, unfortunately my Objective-C skill didn't help me too much to understand why it exists.
Comment 9 Hugo Parente Lima 2012-02-09 13:30:54 PST
What do you think about WC::Settings storing the int value with the mask used by  keyboard UI mode? This for sure should exclude the need of keyboardUIMode() virtual.
Comment 10 Jocelyn Turcotte 2014-02-03 03:20:01 PST
=== Bulk closing of Qt bugs ===

If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary.

If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.