c# convert pdf to image free library : Extract pdf data to excel SDK application service wpf html web page dnn print71-part2126

6.4 Focus
This section is non-normative.
An HTML user interface typically consists of multiple interactive widgets, such as form controls, scrollable regions, links, dialog boxes, browser tabs,
and so forth. These widgets form a hierarchy, with some (e.g. browser tabs, dialog boxes) containing others (e.g. links, form controls).
When interacting with an interface using a keyboard, key input is channeled from the system, through the hierarchy of interactive widgets, to an
active widget, which is said to befocusedp713
.
Keyboardeventsare always targeted at thisfocusedp713
element.
The termfocusable areais used to refer to regions of the interface that can become the target of keyboard input. Focusable areas can be
elements, parts of elements, or other regions managed by the user agent.
Consider an HTML application running in a browser tab running in a graphical environment. Suppose this application had a page with
some text fields and links, and was currently showing a modal dialog, which itself had a text field and a button.
The hierarchy of focusable widgets, in this scenario, would include the browser window, which would have, amongst its children, the
browser tab containing the HTML application. The tab itself would have as its children the various links and text fields, as well as the
dialog. The dialog itself would have as its children the text field and the button.
If the widget withfocusin this example was the text field in the dialog box, then key input would be channeled from the graphical system
to ① the Web browser, then to ② the tab, then to ③ the dialog, and finally to ④ the text field.
Example
6.4.1 Introduction
6.4.2 Data model
711
Extract pdf data to excel - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
extract pdf data to excel; how to save editable pdf form in reader
Extract pdf data to excel - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
extract data from pdf form to excel; extracting data from pdf forms
Eachfocusable areap711
has aDOM anchor, which is aNode
object that represents the position of thefocusable areap711
in the DOM. (When the
focusable areap711
is itself aNode
, it is its ownDOM anchorp712
.) TheDOM anchorp712
is used in some APIs as a substitute for thefocusable
areap711
when there is no other DOM object to represent thefocusable areap711
.
The following table describes what objects can befocusable areasp711
. The cells in the left column describe objects that can befocusable areasp711
;
the cells in the right column describe theDOM anchorsp712
for those elements. (The cells that span both columns are non-normative examples.)
Focusable areap711
DOM anchorp712
Examples
Elements that have theirtabindex focus flagp714
set, that are notactually disabledp666
, that are notexpressly inertp713
, and
that are eitherbeing rendered
p1067
orbeing used as relevant canvas fallback content
p584
.
The element itself.
The shapes ofareap387
elements in animage mapp389
associated with animgp280
element that isbeing renderedp1067
and
is notexpressly inertp713
.
Theimgp280
element.
The user-agent provided subwidgets of elements that arebeing renderedp1067
and are notactually disabledp666
or
expressly inertp713
.
The element for which thefocusable
area
p711
is a subwidget.
The scrollable regions of elements that arebeing renderedp1067
and are notexpressly inertp713
.
The element for which the box that the
scrollable region scrolls was created.
Theviewport
of aDocumentp103
that has abrowsing contextp748
and is notinertp709
.
TheDocumentp103
for which theviewport
was created.
Any other element or part of an element, especially to aid with accessibility or to better match platform conventions.
The element.
The following createcontrol groups:
• Documentp103
object that havebrowsing contextsp748
.
• dialogp559
elements that have anopenp559
attribute specified and that arebeing renderedp1067
.
The correspondingDocumentp103
object ordialogp559
element is the createdcontrol groupp712
'sowner object. (There is always a 1:1 mapping of
control groupsp712
tocontrol group owner objectsp712
.)
Eachfocusable areap711
belongs to a singlecontrol groupp712
as follows. If theDOM anchorp712
of afocusable areap711
is acontrol group owner
objectp712
, then thatfocusable areap711
belongs to thatcontrol group owner objectp712
'scontrol groupp712
. Otherwise, thefocusable areap711
belongs
to itsDOM anchorp712
's nearest ancestorcontrol group owner objectp712
'scontrol groupp712
.
iframep308
,<input type=text>p440
, sometimes<a href="">p207
(depending on platform conventions).
In the following example, theareap387
element creates two shapes, one on each image. TheDOM anchorp712
of the first shape is the firstimgp280
element, and theDOM
anchorp712
of the second shape is the secondimgp280
element.
<map id=wallmap><area alt="Enter Door" coords="10,10,100,200" href="door.html"></map>
...
<img src="images/innerwall.jpeg" alt="There is a white wall here, with a door." usemap="#wallmap">
...
<img src="images/outerwall.jpeg" alt="There is a red wall here, with a door." usemap="#wallmap">
Thecontrols in the user interface that is exposed to the userp380
for avideop325
element, the up and down buttons in a spin-control version of<input type=number>p450
, the
two range control widgets in a<input type=range multiple>p451
, the part of adetailsp544
element's rendering that enabled the element to be opened or closed using
keyboard input.
The CSS'overflow'
property's 'scroll' value typically creates a scrollable region.
The contents of aniframep308
.
A user agent could make all list item bullets focusable, so that a user can more easily navigate lists.
Example
Similarly, a user agent could make all elements withtitlep124
attributes focusable, so that their advisory information can be accessed.
Example
Abrowsing context containerp749
(e.g. aniframep308
) is afocusable areap711
, but key events routed to abrowsing context containerp749
get immediately routed to thenested browsing contextp749
'sactive documentp748
. Similarly, in sequential focus navigation abrowsing
context containerp749
essentially acts merely as a placeholder for itsnested browsing contextp749
'sactive documentp748
.
Note
Thus, aviewport
always belongs to thecontrol groupp712
of theDocumentp103
for which theviewport
was created, aninputp434
control
belongs to thecontrol groupp712
of its nearest ancestordialogp559
orDocumentp103
, and an image map's shapes belong to the nearest
Example
712
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Image: Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Data: Read, Extract Field Data. Data: Auto Fill-in Field
filling out pdf forms with reader; how to save fillable pdf form in reader
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› C# PDF: Extract PDF Image. How to C#: Extract Image from PDF Document.
extract data from pdf form; extracting data from pdf files
An element isexpressly inertif it isinertp709
but it is not acontrol group owner objectp712
and its nearest ancestorcontrol group owner objectp712
is
notinertp709
.
Onefocusable areap711
in each non-emptycontrol groupp712
is designated thefocused area of the control group. Which control is so designated
changes over time, based on algorithms in this specification. If acontrol groupp712
is empty, it has nofocused areap713
.
Eachcontrol group owner objectp712
can also act as themanagerof adialog group.
Eachdialogp559
element that has anopenp559
attribute specified and that isbeing renderedp1067
(i.e. that is acontrol group owner objectp712
) and
is notexpressly inertp713
belongs to thedialog groupp713
whosemanagerp713
is thedialogp559
element's nearest ancestorcontrol group owner
objectp712
.
Adialogp559
isexpressly inertif it isinertp709
but its nearest ancestorcontrol group owner objectp712
is not.
If nodialogp559
element has a particularcontrol group owner objectp712
as its nearest ancestorcontrol group owner objectp712
, then thatcontrol
group owner objectp712
has nodialog groupp713
.
Eachdialog groupp713
can have adialogp559
designated as thefocused dialog of the dialog group. Whichdialogp559
is so designated
changes over time, based on algorithms in this specification.
Focusable areasp711
incontrol groupsp712
are ordered relative to thetree order
of theirDOM anchorsp712
.Focusable areasp711
with the sameDOM
anchorp712
in acontrol groupp712
are ordered relative to their CSS box's relative positions in a pre-order, depth-first traversal of the box tree.
[CSS]p1159
Elements indialog groupsp713
are ordered intree order
.
Thecurrently focused area of a top-level browsing contextat any particular time is thefocusable areap711
ordialogp559
returned by this
algorithm:
1. Letcandidatebe theDocumentp103
of thetop-level browsing contextp749
.
2. Ifcandidatehas adialog groupp713
with a designatedfocused dialog of the dialog groupp713
, then letcandidatebe the designated
focused dialog of the dialog groupp713
, and redo this step.
Otherwise, ifcandidatehas a non-emptycontrol groupp712
, and the designatedfocused area of the control groupp713
is abrowsing
context containerp749
, then letcandidatebe theactive documentp748
of thatbrowsing context containerp749
'snested browsing contextp749
,
and redo this step.
Otherwise, ifcandidatehas a non-emptycontrol groupp712
, letcandidatebe the designatedfocused area of the control groupp713
.
3. Returncandidate.
An element that is theDOM anchorp712
of afocusable areap711
is said togain focuswhen thatfocusable areap711
becomes thecurrently focused
area of a top-level browsing contextp713
. When an element is theDOM anchorp712
of afocusable areap711
of thecurrently focused area of a top-level
browsing contextp713
, it isfocused.
Thefocus chainof afocusable areap711
orcontrol group owner objectp712
subjectis the ordered list constructed as follows:
1. Letcurrent objectbesubject.
2. Letoutputbe an empty list.
3. Loop: Appendcurrent objecttooutput.
4. Ifcurrent objectis anareap387
element's shape, append thatareap387
element tooutput.
ancestordialogp559
orDocumentp103
of theimgp280
elements (not theareap387
elements — this means oneareap387
element might
create multiple shapes in differentcontrol groupsp712
).
It is possible for acontrol groupp712
to be empty, i.e. for it to have nofocusable areasp711
.
Note
713
VB.NET PDF Text Extract Library: extract text content from PDF
PDF ›› VB.NET PDF: Extract PDF Text. VB.NET PDF - Extract Text from PDF Using VB. How to Extract Text from PDF with VB.NET Sample Codes in .NET Application.
sign pdf form reader; change font size pdf form reader
C# PDF Text Extract Library: extract text content from PDF file in
XDoc.PDF ›› C# PDF: Extract PDF Text. C# PDF - Extract Text from PDF in C#.NET. Feel Free to Extract Text from PDF Page, Page Region or the Whole PDF File.
pdf form field recognition; exporting data from excel to pdf form
Otherwise, ifcurrent objectis afocusable areap711
whoseDOM anchorp712
is an element that is notcurrent objectitself, append that
DOM anchorp712
element tooutput.
5. Ifcurrent objectis adialogp559
object in adialog groupp713
, letcurrent objectbe thatdialog groupp713
'smanagerp713
, and return to the
step labeledloop.
Otherwise, ifcurrent objectis afocusable areap711
, letcurrent objectbe thatfocusable areap711
'scontrol groupp712
'sowner objectp712
,
and return to the step labeledloop.
Otherwise, ifcurrent objectis aDocumentp103
in anested browsing contextp749
, letcurrent objectbe itsbrowsing context containerp749
,
and return to the step labeledloop.
6. Returnoutput.
Thetabindexcontent attribute allows authors to indicate that an element is supposed to befocusablep711
, and whether it is supposed to be
reachable usingsequential focus navigationp719
and, if so, what is to be the relative order of the element for the purposes of sequential focus
navigation. The name "tab index" comes from the common use of the "tab" key to navigate through the focusable elements. The term "tabbing"
refers to moving forward through the focusable elements that can be reached using sequential focus navigation.
When the attribute is omitted, the user agent applies defaults. (There is no way to make an element that isbeing renderedp1067
be not focusable at
all withoutdisablingp666
it or making itinertp709
.)
Thetabindexp714
attribute, if specified, must have a value that is avalid integerp66
. Positive numbers specify the relative position of the element's
focusable areasp711
in thesequential focus navigation orderp719
, and negative numbers indicate that the control is to be unreachable bysequential
focus navigationp719
.
Developers should use caution when using values other than 0 or −1 for theirtabindexp714
attributes as this is complicated to do correctly.
Each element can have atabindex focus flagset, as defined below. This flag is a factor that contributes towards determining whether an element
is afocusable areap711
, as described in the previous section.
If thetabindexp714
attribute is specified on an element, it must be parsed using therules for parsing integersp66
. The attribute's values, or lack
thereof, must be interpreted as follows:
If the attribute is omitted or parsing the value returns an error
The user agent should follow platform conventions to determine if the element'stabindex focus flagp714
is set and, if so, whether the element
and anyfocusable areasp711
that have the element as theirDOM anchorp712
can be reached usingsequential focus navigationp719
, and if so,
what their relative position in thesequential focus navigation orderp719
is to be.
Modulo platform conventions, it is suggested that for the following elements, thetabindex focus flagp714
be set:
• ap207
elements that have anhrefp244
attribute
• linkp138
elements that have anhrefp139
attribute
• buttonp476
elements
• inputp434
elements whosetypep436
attribute are not in theHiddenp440
state
• selectp479
elements
• textareap489
elements
• menuitemp551
elements
• Elements with adraggablep744
attribute set, if that would enable the user agent to allow the user to begin a drag operations for
those elements without the use of a pointing device
The chain starts withsubjectand (ifsubjectis or can be thecurrently focused area of a top-level browsing contextp713
)
continues up the focus hierarchy up to theDocumentp103
of thetop-level browsing contextp749
.
Note
6.4.3 Thetabindexp714
attribute
714
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› VB.NET PDF: Extract PDF Image. VB.NET PDF - Extract Image from PDF Document in VB.NET.
export pdf data to excel; pdf data extraction to excel
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Create PDF from Excel. |. Home ›› XDoc.PDF ›› C# PDF: Create PDF from Excel. Export PDF from Excel with cell border or no border.
extract data out of pdf file; export pdf form data to excel
• Editing hostsp727
• Browsing context containersp749
If the value is a negative integer
The user agent must set the element'stabindex focus flagp714
, but should omit the element from thesequential focus navigation orderp719
.
If the value is a zero
The user agent must set the element'stabindex focus flagp714
, should allow the element and anyfocusable areasp711
that have the element as
theirDOM anchorp712
to be reached usingsequential focus navigationp719
, following platform conventions to determine the element's relative
position in thesequential focus navigation orderp719
.
If the value is greater than zero
The user agent must set the element'stabindex focus flagp714
, should allow the element and anyfocusable areasp711
that have the element as
theirDOM anchorp712
to be reached using sequential focus navigation, and should place the element — referenced ascandidatebelow —
and the aforementionedfocusable areasp711
in thesequential focus navigationp719
order so that, relative to otherfocusable areasp711
in the
sequential focus navigation orderp719
, they are:
• before anyfocusable areap711
whoseDOM anchorp712
is an element whosetabindexp714
attribute has been omitted or whose
value, when parsed, returns an error,
• before anyfocusable areap711
whoseDOM anchorp712
is an element whosetabindexp714
attribute has a value equal to or less
than zero,
• after anyfocusable areap711
whoseDOM anchorp712
is an element whosetabindexp714
attribute has a value greater than zero
but less than the value of thetabindexp714
attribute oncandidate,
• after anyfocusable areap711
whoseDOM anchorp712
is an element whosetabindexp714
attribute has a value equal to the value of
thetabindexp714
attribute oncandidatebut that is earlier in the document intree order
thancandidate,
• before anyfocusable areap711
whoseDOM anchorp712
is an element whosetabindexp714
attribute has a value equal to the value
of thetabindexp714
attribute oncandidatebut that is later in the document intree order
thancandidate, and
• before anyfocusable areap711
whoseDOM anchorp712
is an element whosetabindexp714
attribute has a value greater than the
value of thetabindexp714
attribute oncandidate.
An element that has itstabindex focus flagp714
set but does not otherwise have anactivation behaviourp710
defined has anactivation behaviourp710
that does nothing.
An element with thetabindexp714
attribute specified isinteractive contentp118
.
ThetabIndexIDL attribute mustreflectp89
the value of thetabindexp714
content attribute. Its default value is 0 for elements that are focusable
and −1 for elements that are not focusable.
Thefocusing stepsfor an objectnew focus targetthat is either afocusable areap711
, or an element that is not afocusable areap711
, or abrowsing
contextp748
, are as follows. They can optionally be run with afallback target.
One valid reason to ignore the platform conventions and always allow an element to be focused (by setting itstabindex focus
flagp714
) would be if the user's only mechanism for activating an element is through a keyboard action that triggers the focused
element.
Note
One valid reason to ignore the requirement that sequential focus navigation not allow the author to lead to the element would be if
the user's only mechanism for moving the focus is sequential focus navigation. For instance, a keyboard-only user would be unable
to click on a text field with a negativetabindexp714
, so that user's user agent would be well justified in allowing the user to tab to
the control regardless.
Note
This means that an element that is only focusable because of itstabindexp714
attribute will fire aclick
event in response to a non-
mouse activation (e.g. hitting the "enter" key while the element isfocusedp713
).
Note
6.4.4Processing model
715
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Page: Extract, Copy and Paste PDF Pages. Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others in C#.NET Program.
make pdf form editable in reader; extract data from pdf c#
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
VB.NET: Extract PDF Pages and Save into a New PDF File. You VB.NET: Extract PDF Pages and Overwrite the Original PDF File. Instead
pdf form save in reader; extract pdf form data to excel
1. Ifnew focus targetis neither adialogp559
element that has anopenp559
attribute specified and that isbeing renderedp1067
(i.e. that is a
control group owner objectp712
), nor afocusable areap711
, then run the first matching set of steps from the following list:
Ifnew focus targetis anareap387
element with one or more shapes that arefocusable areasp711
Letnew focus targetbe the shape corresponding to the firstimgp280
element intree order
that uses the image map to which
theareap387
element belongs.
Ifnew focus targetis an element with one or more scrollable regions that arefocusable areasp711
Letnew focus targetbe the element's first scrollable region, according to a pre-order, depth-first traversal of the box tree.
[CSS]p1159
Ifnew focus targetis thedocument element
of itsDocumentp103
Letnew focus targetbe theDocumentp103
'sviewport
.
Ifnew focus targetis abrowsing contextp748
Letnew focus targetbe thebrowsing contextp748
'sactive documentp748
.
Ifnew focus targetis abrowsing context containerp749
Letnew focus targetbe thebrowsing context containerp749
'snested browsing contextp749
'sactive documentp748
.
Otherwise
If nofallback targetwas specified, abort thefocusing stepsp715
.
Otherwise, letnew focus targetbe thefallback target.
2. Ifnew focus targetis acontrol group owner objectp712
that is not afocusable areap711
, but does have adialog groupp713
, and thatdialog
groupp713
has a designatedfocused dialogp713
, then letnew focus targetbe thefocused dialog of the dialog groupp713
, and redo this step.
Otherwise, ifnew focus targetis acontrol group owner objectp712
that is not afocusable areap711
, and itscontrol groupp712
is not empty,
then designatenew focus targetas thefocused area of the control groupp713
, and redo this step.
Otherwise, ifnew focus targetis abrowsing context containerp749
, then letnew focus targetbe thenested browsing contextp749
'sactive
documentp748
, and redo this step.
3. Ifnew focus targetis afocusable areap711
and itsDOM anchorp712
isinertp709
, then abort these steps.
4. Ifnew focus targetis thecurrently focused area of a top-level browsing contextp713
, then abort these steps.
5. Letold chainbe thefocus chainp713
of thecurrently focused area of the top-level browsing contextp713
in whichnew focus targetfinds
itself.
6. Letnew chainbe thefocus chainp713
ofnew focus target.
7. Run thefocus update stepsp718
withold chain,new chain, andnew focus targetrespectively.
User agents mustimmediatelyp42
run thefocusing stepsp715
for afocusable areap711
,dialogp559
, orbrowsing contextp748
candidatewhenever the
user attempts to move the focus tocandidate.
Theunfocusing stepsfor an objectold focus targetthat is either afocusable areap711
or an element that is not afocusable areap711
are as follows:
1. Ifold focus targetisinertp709
, then abort these steps.
2. Ifold focus targetis anareap387
element and one of its shapes is thecurrently focused area of a top-level browsing contextp713
, or, ifold
focus targetis an element with one or more scrollable regions, and one of them is thecurrently focused area of a top-level browsing
contextp713
, then letold focus targetbe thatcurrently focused area of a top-level browsing contextp713
.
3. Letold chainbe thefocus chainp713
of thecurrently focused area of a top-level browsing contextp713
.
4. Ifold focus targetis not one of the entries inold chain, then abort these steps.
Adialogp559
element can be both acontrol group owner objectp712
and afocusable areap711
, if it has both anopenp559
attribute specified and atabindexp714
attribute specified and isbeing renderedp1067
.
Note
716
5. Ifold focus targetis adialogp559
in adialog groupp713
, and thedialog group managerp713
has a non-emptycontrol groupp712
, then let
new focus targetbe the designatedfocused area of that focus groupp713
.
Otherwise, ifold focus targetis afocusable areap711
, then letnew focus targetbe the firstfocusable areap711
of itscontrol groupp712
(if the
control group owner objectp712
is aDocumentp103
, this will always be aviewport
).
Otherwise, letnew focus targetbe null.
6. Ifnew focus targetis not null, then run thefocusing stepsp715
fornew focus target.
When thecurrently focused area of a top-level browsing contextp713
is somehow unfocused without another element being explicitly focused in its
stead, the user agent mustimmediatelyp42
run theunfocusing stepsp716
for that object.
When afocusable areap711
is added to an emptycontrol groupp712
, it must be designated thefocused area of the control groupp713
.
When adialog groupp713
is formed, if thedialog group managerp713
has an emptycontrol groupp712
, the first non-inertp709
dialogp559
in thedialog
groupp713
, if any, or else the firstdialogp559
in thedialog groupp713
regardless ofinertnessp709
, must be designated thefocused dialog of the dialog
groupp713
.
Focus fixup rule one: When the designatedfocused area of a control groupp713
is removed from thatcontrol groupp712
in some way (e.g. it stops
being afocusable areap711
, it is removed from the DOM, it becomesexpressly inertp713
, etc), and thecontrol groupp712
is still not empty: designate
the first non-inertp709
focused areap713
in thatcontrol groupp712
to be the newfocused area of the control groupp713
, if any; if they are allinertp709
, then
designate the firstfocused areap713
in thatcontrol groupp712
to be the newfocused area of the control groupp713
regardless ofinertnessp709
. If such a
removal instead results in thecontrol groupp712
being empty, then there is simply no longer afocused area of the control groupp713
.
Focus fixup rule two: When adialog groupp713
has no designatedfocused dialog of the dialog groupp713
, and itsdialog group managerp713
'scontrol
groupp712
changes from being non-empty to being empty, the first non-inertp709
dialogp559
in thedialog groupp713
, if any, or else the first
dialogp559
in thedialog groupp713
regardless ofinertnessp709
, must be designated thefocused dialog of the dialog groupp713
.
Focus fixup rule three: When the designatedfocused dialog of a dialog groupp713
is removed from thatdialog groupp713
in some way (e.g. it stops
being renderedp1067
, it loses itsopenp559
attribute, it becomesexpressly inertp713
, etc), and there is still adialog groupp713
(because thedialogp559
in question was not the lastdialogp559
in thatdialog groupp713
): if thedialog groupp713
'smanagerp713
'scontrol groupp712
is non-empty, let there be
no designatedfocused dialog of the dialog groupp713
any more; otherwise (in the case that thecontrol groupp712
is empty), designate the first
non-inertp709
dialogp559
in thedialog groupp713
to be thefocused dialog of the dialog groupp713
, or, if they are allinertp709
, designate the first
dialogp559
in thedialog groupp713
to be thefocused dialog of the dialog groupp713
regardless ofinertnessp709
.
When thecurrently focused area of a top-level browsing contextp713
was afocusable areap711
but stops being afocusable areap711
, or when it was a
dialogp559
in adialog groupp713
and stops being part of thatdialog groupp713
, or when it starts beinginertp709
, the user agent must run the following
steps:
1. Letold focus targetbe whatever thecurrently focused area of the top-level browsing contextp713
was immediately before this algorithm
became applicable (e.g. before the element was disabled, or the dialog was closed, or whatever caused this algorithm to run).
2. Letold chainbe thefocus chainp713
of thecurrently focused area of the top-level browsing contextp713
at the same time.
3. Make sure that the changes implied by the focus fixup rulesonep717
,twop717
, andthreep717
above are applied.
4. Letnew focus targetbe thecurrently focused area of a top-level browsing contextp713
.
5. Ifold focus targetandnew focus targetare the same, abort these steps.
6. Letnew chainbe thefocus chainp713
ofnew focus target.
7. Run thefocus update stepsp718
withold chain,new chain, andnew focus targetrespectively.
Theunfocusing stepsp716
do not always result in the focus changing, even when applied to thecurrently focused area of a top-level
browsing contextp713
. For example, if thecurrently focused area of a top-level browsing contextp713
is aviewport
, then it will usually keep its
focus regardless until anotherfocusable areap711
is explicitly focused with thefocusing stepsp715
.
Note
For example, this might happen because an element is removed from itsDocumentp103
, or has ahiddenp708
attribute added. It might
also happen to aninputp434
element when the element getsdisabledp511
.
Example
717
Thefocus update steps, given anold chain, anew chain, and anew focus targetrespectively, are as follows:
1. If the last entry inold chainand the last entry innew chainare the same, pop the last entry fromold chainand the last entry fromnew
chainand redo this step.
2. For each entryentryinold chain, in order, run these substeps:
1. Ifentryis aninputp434
element, and thechangep1154
eventappliesp437
to the element, and the element does not have a
definedactivation behaviourp710
, and the user has changed the element'svaluep508
or its list ofselected filesp457
while the
control was focused without committing that change (such that it is different to what it was when the control was first
focused), thenfire a simple eventp854
that bubbles namedchangep1154
at the element.
2. Ifentryis an element, letblur event targetbeentry.
Ifentryis aDocumentp103
object, letblur event targetbe thatDocumentp103
object'sWindowp758
object.
Otherwise, letblur event targetbe null.
3. Ifentryis the last entry inold chain, andentryis anElement
, and the last entry innew chainis also anElement
, then let
related blur targetbe the last entry innew chain. Otherwise, letrelated blur targetbe null.
4. Ifblur event targetis not null,fire a focus eventp718
namedblurp1154
atblur event target, withrelated blur targetas the
related target.
3. Apply any relevant platform-specific conventions for focusingnew focus target. (For example, some platforms select the contents of a
text field when that field is focused.)
4. For each entryentryinnew chain, in reverse order, run these substeps:
1. Ifentryis adialogp559
element: Letentrybe the designatedfocused dialog of its dialog groupp713
.
2. Ifentryis afocusable areap711
: Designateentryas thefocused area of the control groupp713
. If itscontrol groupp712
'sowner
objectp712
is also adialog group managerp713
, then let there be no designatedfocused dialogp713
in thatdialog groupp713
.
3. Ifentryis an element, letfocus event targetbeentry.
Ifentryis aDocumentp103
object, letfocus event targetbe thatDocumentp103
object'sWindowp758
object.
Otherwise, letfocus event targetbe null.
4. Ifentryis the last entry innew chain, andentryis anElement
, and the last entry inold chainis also anElement
, then let
related focus targetbe the last entry inold chain. Otherwise, letrelated focus targetbe null.
5. Iffocus event targetis not null,fire a focus eventp718
namedfocusp1154
atfocus event target, withrelated focus targetas the
related target.
When a user agent is required tofire a focus eventnamedeat an elementtand with a given related targetr, the user agent must create a
trustedp44
FocusEvent
object, initialise it to have the given namee, to not bubble, to not be cancelable, and to have therelatedTarget
attribute
initialised tor, theview
attribute initialised to theWindowp758
object of theDocumentp103
object oft, and thedetail
attribute initialised to 0, and
must thendispatchp44
the newly createdFocusEvent
object at the specified target elementt.
When a key event is to be routed in atop-level browsing contextp749
, the user agent must run the following steps:
1. Lettarget areabe thecurrently focused area of the top-level browsing contextp713
.
2. Iftarget areais afocusable areap711
, lettarget nodebetarget area'sDOM anchorp712
. Otherwise,target areais adialogp559
; lettarget
nodebetarget area.
In some cases, e.g. ifentryis anareap387
element's shape, a scrollable region, or aviewport
, no event is fired.
Note
It is possible forentryto be both adialogp559
element and afocusable areap711
, in which case it is its owncontrol
group owner objectp712
.
Note
In some cases, e.g. ifentryis anareap387
element's shape, a scrollable region, or aviewport
, no event is fired.
Note
718
3. Iftarget nodeis aDocumentp103
that has abody elementp108
, then lettarget nodebethe body elementp108
of thatDocumentp103
.
Otherwise, iftarget nodeis aDocumentp103
object that has a non-nulldocument element
, then lettarget nodebe thatdocument
element
.
4. Iftarget nodeis notinertp709
, fire the event attarget node.
5. If the event was not canceled, then lettarget areahandle the key event. This might includerunning synthetic click activation stepsp709
for
target node.
Thehas focus steps, given aDocumentp103
objecttarget, are as follows:
1. Letcandidatebe theDocumentp103
of thetop-level browsing contextp749
.
2. Ifcandidateistarget, return true and abort these steps.
3. Ifcandidatehas adialog groupp713
with a designatedfocused dialog of the dialog groupp713
, then letcandidatebe the designated
focused dialog of the dialog groupp713
, and redo this step.
Otherwise, ifcandidatehas a non-emptycontrol groupp712
, and the designatedfocused area of the control groupp713
is abrowsing
context containerp749
, and theactive documentp748
of thatbrowsing context containerp749
'snested browsing contextp749
istarget, then
return true and abort these steps.
Otherwise, ifcandidatehas a non-emptycontrol groupp712
, and the designatedfocused area of the control groupp713
is abrowsing
context containerp749
, then letcandidatebe theactive documentp748
of thatbrowsing context containerp749
'snested browsing contextp749
,
and redo this step.
Otherwise, return false and abort these steps.
Eachcontrol groupp712
has asequential focus navigation order, which orders some or all of thefocusable areasp711
in thecontrol groupp712
relative to each other. The order in thesequential focus navigation orderp719
does not have to be related to the order in thecontrol groupp712
itself. If
afocusable areap711
is omitted from thesequential focus navigation orderp719
of itscontrol groupp712
, then it is unreachable viasequential focus
navigationp719
.
There can also be asequential focus navigation starting point. It is initially unset. The user agent may set it when the user indicates that it
should be moved.
When the user requests that focus move from thecurrently focused area of a top-level browsing contextp713
to the next or previousfocusable
areap711
(e.g. as the default action of pressing thetabkey), or when the user requests that focus sequentially move to atop-level browsing
contextp749
in the first place (e.g. from the browser's location bar), the user agent must use the following algorithm:
1. Letstarting pointbe thecurrently focused area of a top-level browsing contextp713
, if the user requested to move focus sequentially from
there, or else thetop-level browsing contextp749
itself, if the user instead requested to move focus from outside thetop-level browsing
contextp749
.
2. If there is asequential focus navigation starting pointp719
defined and it is insidestarting point, then letstarting pointbe thesequential
focus navigation starting pointp719
instead.
3. Letdirectionbeforwardif the user requested thenextcontrol, andbackwardif the user requested the previous control.
It is possible for thecurrently focused area of a top-level browsing contextp713
to beinertp709
, for example if amodal dialog is
shownp560
, and then thatdialogp559
element is madeinertp709
. It is likely to be the result of a logic error in the application,
though.
Note
For example, the user agent could set it to the position of the user's click if the user clicks on the document contents.
Example
Typically, pressingtabrequests the next control, and pressingshift+tabrequests the previous control.
Note
6.4.5Sequential focus navigation
719
4. Loop: Letselection mechanismbesequentialif thestarting pointis abrowsing contextp748
or ifstarting pointis in itscontrol groupp712
's
sequential focus navigation orderp719
.
Otherwise,starting pointis not in itscontrol groupp712
'ssequential focus navigation orderp719
; letselection mechanismbeDOM.
5. Letcandidatebe the result of running thesequential navigation search algorithmp720
withstarting point,direction, andselection
mechanismas the arguments.
6. Ifcandidateis not null, then run thefocusing stepsp715
forcandidateand abort these steps.
7. Otherwise, unset thesequential focus navigation starting pointp719
.
8. Ifstarting pointis thetop-level browsing contextp749
, or afocusable areap711
in thetop-level browsing contextp749
, the user agent should
transfer focus to its own controls appropriately (if any), honouringdirection, and then abort these steps.
If the user agent has no focusable controls — a kiosk-mode browser, for instance — then the user agent may instead restart these steps
with thestarting pointbeing thetop-level browsing contextp749
itself.
9. Otherwise,starting pointis afocusable areap711
in anested browsing contextp749
. Letstarting pointbe thatnested browsing contextp749
's
browsing context containerp749
, and return to the step labeledloop.
Thesequential navigation search algorithmconsists of the following steps. This algorithm takes three arguments:starting point,direction, and
selection mechanism.
1. Pick the appropriate cell from the following table, and follow the instructions in that cell.
The appropriate cell is the one that is from the column whose header describesdirectionand from the first row whose header describes
starting pointandselection mechanism.
directionisforward
directionisbackward
starting pointis
abrowsing
contextp748
Letcandidatebe the firstsuitable sequentially focusable areap720
in
starting point'sactive documentp748
'sprimary control groupp720
, if any;
or else null
Letcandidatebe the lastsuitable sequentially focusable areap720
in
starting point'sactive documentp748
'sprimary control groupp720
, if any;
or else null
selection
mechanismis
DOM
Letcandidatebe the firstsuitable sequentially focusable areap720
in
thehome control groupp720
followingstarting point, if any; or else null
Letcandidatebe the lastsuitable sequentially focusable areap720
in the
home control groupp720
precedingstarting point, if any; or else null
selection
mechanismis
sequential
Letcandidatebe the firstsuitable sequentially focusable areap720
in
thehome sequential focus navigation orderp720
followingstarting point,
if any; or else null
Letcandidatebe the lastsuitable sequentially focusable areap720
in the
home sequential focus navigation orderp720
precedingstarting point, if
any; or else null
Asuitable sequentially focusable areais afocusable areap711
whoseDOM anchorp712
is notinertp709
and that is in itscontrol
groupp712
'ssequential focus navigation orderp719
.
Theprimary control groupof acontrol group owner objectp712
Xis thecontrol groupp712
ofXifXhas nodialog groupp713
or if itsdialog
groupp713
has no designatedfocused dialog of the dialog groupp713
, otherwise, it is theprimary control groupp720
ofX'sdialog groupp713
's
designatedfocused dialog of the dialog groupp713
.
Thehome control groupis thecontrol groupp712
to whichstarting pointbelongs.
Thehome sequential focus navigation orderis thesequential focus navigation orderp719
to whichstarting pointbelongs.
2. Ifcandidateis abrowsing context containerp749
, then letnew candidatebe the result of running thesequential navigation search
algorithmp720
withcandidate'snested browsing contextp749
as the first argument,directionas the second, andsequentialas the third.
Ifnew candidateis null, then letstarting pointbecandidate, and return to the top of this algorithm. Otherwise, letcandidatebenew
candidate.
3. Returncandidate.
For example, ifdirectionisbackward, then the last focusable control before the browser's rendering area would be the control
to focus.
Example
Thehome sequential focus navigation orderp720
is thehome control groupp720
'ssequential focus navigation orderp719
, but is only
used when thestarting pointis in thatsequential focus navigation orderp719
(when it's not,selection mechanismwill beDOM).
Note
720
Documents you may be interested
Documents you may be interested