| 5475 |
disabled => FEATURE_HTML5_DEFAULT | FEATURE_WF2X | FEATURE_M12N10_REC, |
disabled => FEATURE_HTML5_DEFAULT | FEATURE_WF2X | FEATURE_M12N10_REC, |
| 5476 |
enctype => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
enctype => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
| 5477 |
form => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
form => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
| 5478 |
inputmode => FEATURE_HTML5_DEFAULT | FEATURE_WF2X | FEATURE_XHTMLBASIC11_CR, |
inputmode => FEATURE_HTML5_DROPPED | FEATURE_WF2X | |
| 5479 |
|
FEATURE_XHTMLBASIC11_CR, |
| 5480 |
ismap => FEATURE_M12N10_REC, |
ismap => FEATURE_M12N10_REC, |
| 5481 |
lang => FEATURE_HTML5_DEFAULT | FEATURE_XHTML10_REC, |
lang => FEATURE_HTML5_DEFAULT | FEATURE_XHTML10_REC, |
| 5482 |
list => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
list => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
| 5483 |
max => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
max => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
| 5484 |
maxlength => FEATURE_HTML5_DEFAULT | FEATURE_WF2X | FEATURE_M12N10_REC, |
maxlength => FEATURE_HTML5_DEFAULT | FEATURE_WF2X | |
| 5485 |
|
FEATURE_M12N10_REC, |
| 5486 |
method => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
method => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
| 5487 |
min => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
min => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
| 5488 |
name => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
name => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
| 5499 |
replace => FEATURE_WF2, |
replace => FEATURE_WF2, |
| 5500 |
required => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
required => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
| 5501 |
sdapref => FEATURE_HTML20_RFC, |
sdapref => FEATURE_HTML20_RFC, |
| 5502 |
size => FEATURE_HTML5_DEFAULT | FEATURE_WF2X_DEPRECATED | FEATURE_M12N10_REC, |
size => FEATURE_HTML5_DEFAULT | FEATURE_WF2X_DEPRECATED | |
| 5503 |
|
FEATURE_M12N10_REC, |
| 5504 |
src => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
src => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
| 5505 |
step => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
step => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
| 5506 |
tabindex => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
tabindex => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
| 5518 |
accept => '', |
accept => '', |
| 5519 |
'accept-charset' => $HTMLCharsetsAttrChecker, |
'accept-charset' => $HTMLCharsetsAttrChecker, |
| 5520 |
## NOTE: To which states it applies is not defined in RFC 2070. |
## NOTE: To which states it applies is not defined in RFC 2070. |
| 5521 |
## TODO: tests |
accesskey => '', ## NOTE: Not applied to |hidden| [WF2]. |
|
accesskey => $HTMLAccesskeyAttrChecker, |
|
|
## NOTE: Not applied to |hidden| [WF2]. |
|
|
## TODO: tests |
|
| 5522 |
action => '', |
action => '', |
| 5523 |
|
align => '', |
| 5524 |
alt => '', |
alt => '', |
| 5525 |
autocomplete => '', |
autocomplete => '', |
| 5526 |
autofocus => $GetHTMLBooleanAttrChecker->('autofocus'), |
autofocus => $GetHTMLBooleanAttrChecker->('autofocus'), |
| 5530 |
## ISSUE: No HTML5 definition yet. ## TODO: Tests |
## ISSUE: No HTML5 definition yet. ## TODO: Tests |
| 5531 |
enctype => '', |
enctype => '', |
| 5532 |
form => $HTMLFormAttrChecker, |
form => $HTMLFormAttrChecker, |
| 5533 |
ismap => '', ## NOTE: "MUST" [HTML4] |
inputmode => '', |
| 5534 |
|
ismap => '', ## NOTE: "MUST" be type=image [HTML4] |
| 5535 |
list => '', |
list => '', |
| 5536 |
max => '', |
max => '', |
| 5537 |
maxlength => '', |
maxlength => '', |
| 5548 |
## TODO: tests for four attributes above |
## TODO: tests for four attributes above |
| 5549 |
pattern => '', |
pattern => '', |
| 5550 |
readonly => '', |
readonly => '', |
| 5551 |
|
replace => '', |
| 5552 |
required => '', |
required => '', |
| 5553 |
size => '', |
size => '', |
| 5554 |
src => '', |
src => '', |
| 5579 |
} |
} |
| 5580 |
}, |
}, |
| 5581 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
|
$checker = '' if $attr_ln eq 'accesskey'; |
|
| 5582 |
## TODO: Warn if no name attribute? |
## TODO: Warn if no name attribute? |
| 5583 |
## TODO: Warn if name!=_charset_ and no value attribute? |
## TODO: Warn if name!=_charset_ and no value attribute? |
| 5584 |
} elsif ($state eq 'datetime') { |
} elsif ($state eq 'datetime') { |
| 5585 |
$checker = |
$checker = |
| 5586 |
{ |
{ |
| 5587 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5588 |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
| 5589 |
on => 1, off => 1, |
on => 1, off => 1, |
| 5590 |
}), |
}), |
| 5591 |
## TODO: list |
## TODO: list |
| 5592 |
## TODO: max |
## TODO: max |
| 5593 |
## TODO: min |
## TODO: min |
| 5594 |
|
## TODO: min <= max |
| 5595 |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
| 5596 |
required => $GetHTMLBooleanAttrChecker->('required'), |
required => $GetHTMLBooleanAttrChecker->('required'), |
| 5597 |
step => $StepAttrChecker, |
step => $StepAttrChecker, |
| 5598 |
value => sub { |
value => sub { |
| 5599 |
## NOTE: No restriction. |
## NOTE: No restriction. |
| 5600 |
## TODO: Warn if not a valid UTC date and time string. |
## TODO: Warn if not a valid UTC date and time string. |
| 5601 |
|
## TODO: Warn unless min <= value <= max |
| 5602 |
}, |
}, |
| 5603 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5604 |
} elsif ($state eq 'date') { |
} elsif ($state eq 'date') { |
| 5605 |
$checker = |
$checker = |
| 5606 |
{ |
{ |
| 5607 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5608 |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
| 5609 |
on => 1, off => 1, |
on => 1, off => 1, |
| 5610 |
}), |
}), |
| 5611 |
## TODO: list |
## TODO: list |
| 5612 |
## TODO: max |
## TODO: max |
| 5613 |
## TODO: min |
## TODO: min |
| 5614 |
|
## TODO: min <= max |
| 5615 |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
| 5616 |
required => $GetHTMLBooleanAttrChecker->('required'), |
required => $GetHTMLBooleanAttrChecker->('required'), |
| 5617 |
step => $StepAttrChecker, |
step => $StepAttrChecker, |
| 5618 |
value => sub { |
value => sub { |
| 5619 |
## NOTE: No restriction. |
## NOTE: No restriction. |
| 5620 |
## TODO: Warn if not a valid date string. |
## TODO: Warn if not a valid date string. |
| 5621 |
|
## TODO: Warn unless min <= value <= max |
| 5622 |
}, |
}, |
| 5623 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5624 |
} elsif ($state eq 'month') { |
} elsif ($state eq 'month') { |
| 5625 |
$checker = |
$checker = |
| 5626 |
{ |
{ |
| 5627 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5628 |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
| 5629 |
on => 1, off => 1, |
on => 1, off => 1, |
| 5630 |
}), |
}), |
| 5631 |
## TODO: list |
## TODO: list |
| 5632 |
## TODO: max |
## TODO: max |
| 5633 |
## TODO: min |
## TODO: min |
| 5634 |
|
## TODO: min <= max |
| 5635 |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
| 5636 |
required => $GetHTMLBooleanAttrChecker->('required'), |
required => $GetHTMLBooleanAttrChecker->('required'), |
| 5637 |
step => $StepAttrChecker, |
step => $StepAttrChecker, |
| 5638 |
value => sub { |
value => sub { |
| 5639 |
## NOTE: No restriction. |
## NOTE: No restriction. |
| 5640 |
## TODO: Warn if not a valid month string. |
## TODO: Warn if not a valid month string. |
| 5641 |
|
## TODO: Warn unless min <= value <= max |
| 5642 |
}, |
}, |
| 5643 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5644 |
} elsif ($state eq 'week') { |
} elsif ($state eq 'week') { |
| 5645 |
$checker = |
$checker = |
| 5646 |
{ |
{ |
| 5647 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5648 |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
| 5649 |
on => 1, off => 1, |
on => 1, off => 1, |
| 5650 |
}), |
}), |
| 5651 |
## TODO: list |
## TODO: list |
| 5652 |
## TODO: max |
## TODO: max |
| 5653 |
## TODO: min |
## TODO: min |
| 5654 |
|
## TODO: min <= max |
| 5655 |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
| 5656 |
required => $GetHTMLBooleanAttrChecker->('required'), |
required => $GetHTMLBooleanAttrChecker->('required'), |
| 5657 |
step => $StepAttrChecker, |
step => $StepAttrChecker, |
| 5658 |
value => sub { |
value => sub { |
| 5659 |
## NOTE: No restriction. |
## NOTE: No restriction. |
| 5660 |
## TODO: Warn if not a valid week string. |
## TODO: Warn if not a valid week string. |
| 5661 |
|
## TODO: Warn unless min <= value <= max |
| 5662 |
}, |
}, |
| 5663 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5664 |
} elsif ($state eq 'time') { |
} elsif ($state eq 'time') { |
| 5665 |
$checker = |
$checker = |
| 5666 |
{ |
{ |
| 5667 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5668 |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
| 5669 |
on => 1, off => 1, |
on => 1, off => 1, |
| 5670 |
}), |
}), |
| 5671 |
## TODO: list |
## TODO: list |
| 5672 |
## TODO: max |
## TODO: max |
| 5673 |
## TODO: min |
## TODO: min |
| 5674 |
|
## TODO: min <= max |
| 5675 |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
| 5676 |
required => $GetHTMLBooleanAttrChecker->('required'), |
required => $GetHTMLBooleanAttrChecker->('required'), |
| 5677 |
step => $StepAttrChecker, |
step => $StepAttrChecker, |
| 5678 |
value => sub { |
value => sub { |
| 5679 |
## NOTE: No restriction. |
## NOTE: No restriction. |
| 5680 |
## TODO: Warn if not a valid time string. |
## TODO: Warn if not a valid time string. |
| 5681 |
|
## TODO: Warn unless min <= value <= max |
| 5682 |
}, |
}, |
| 5683 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5684 |
} elsif ($state eq 'datetime-local') { |
} elsif ($state eq 'datetime-local') { |
| 5685 |
$checker = |
$checker = |
| 5686 |
{ |
{ |
| 5687 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5688 |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
| 5689 |
on => 1, off => 1, |
on => 1, off => 1, |
| 5690 |
}), |
}), |
| 5691 |
## TODO: list |
## TODO: list |
| 5692 |
## TODO: max |
## TODO: max |
| 5693 |
## TODO: min |
## TODO: min |
| 5694 |
|
## TODO: min <= max |
| 5695 |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
| 5696 |
required => $GetHTMLBooleanAttrChecker->('required'), |
required => $GetHTMLBooleanAttrChecker->('required'), |
| 5697 |
step => $StepAttrChecker, |
step => $StepAttrChecker, |
| 5698 |
value => sub { |
value => sub { |
| 5699 |
## NOTE: No restriction. |
## NOTE: No restriction. |
| 5700 |
## TODO: Warn if not a valid local date and time string. |
## TODO: Warn if not a valid local date and time string. |
| 5701 |
|
## TODO: Warn unless min <= value <= max |
| 5702 |
}, |
}, |
| 5703 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5704 |
} elsif ($state eq 'number') { |
} elsif ($state eq 'number') { |
| 5705 |
$checker = |
$checker = |
| 5706 |
{ |
{ |
| 5707 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5708 |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
| 5709 |
on => 1, off => 1, |
on => 1, off => 1, |
| 5710 |
}), |
}), |
| 5712 |
max => $GetHTMLFloatingPointNumberAttrChecker->(sub { 1 }), |
max => $GetHTMLFloatingPointNumberAttrChecker->(sub { 1 }), |
| 5713 |
min => $GetHTMLFloatingPointNumberAttrChecker->(sub { 1 }), |
min => $GetHTMLFloatingPointNumberAttrChecker->(sub { 1 }), |
| 5714 |
## TODO: min & max tests |
## TODO: min & max tests |
| 5715 |
|
## TODO: min <= max |
| 5716 |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
readonly => $GetHTMLBooleanAttrChecker->('readonly'), |
| 5717 |
required => $GetHTMLBooleanAttrChecker->('required'), |
required => $GetHTMLBooleanAttrChecker->('required'), |
| 5718 |
step => $StepAttrChecker, |
step => $StepAttrChecker, |
| 5719 |
value => sub { |
value => sub { |
| 5720 |
## NOTE: No restriction. |
## NOTE: No restriction. |
| 5721 |
## TODO: Warn if not a valid floating point number. |
## TODO: Warn if not a valid floating point number. |
| 5722 |
|
## TODO: Warn unless min <= value <= max |
| 5723 |
}, |
}, |
| 5724 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5725 |
} elsif ($state eq 'range') { |
} elsif ($state eq 'range') { |
| 5726 |
$checker = |
$checker = |
| 5727 |
{ |
{ |
| 5728 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5729 |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
| 5730 |
on => 1, off => 1, |
on => 1, off => 1, |
| 5731 |
}), |
}), |
| 5733 |
max => $GetHTMLFloatingPointNumberAttrChecker->(sub { 1 }), |
max => $GetHTMLFloatingPointNumberAttrChecker->(sub { 1 }), |
| 5734 |
min => $GetHTMLFloatingPointNumberAttrChecker->(sub { 1 }), |
min => $GetHTMLFloatingPointNumberAttrChecker->(sub { 1 }), |
| 5735 |
## TODO: min & max tests |
## TODO: min & max tests |
| 5736 |
|
## TODO: min <= max |
| 5737 |
step => $StepAttrChecker, |
step => $StepAttrChecker, |
| 5738 |
value => sub { |
value => sub { |
| 5739 |
## NOTE: No restriction. |
## NOTE: No restriction. |
| 5740 |
## TODO: Warn if not a valid floating point number. |
## TODO: Warn if not a valid floating point number. |
| 5741 |
|
## TODO: Warn unless min <= value <= max |
| 5742 |
}, |
}, |
| 5743 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5744 |
} elsif ($state eq 'checkbox' or $state eq 'radio') { |
} elsif ($state eq 'checkbox' or $state eq 'radio') { |
| 5745 |
$checker = |
$checker = |
| 5746 |
{ |
{ |
| 5747 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5748 |
checked => $GetHTMLBooleanAttrChecker->('checked'), |
checked => $GetHTMLBooleanAttrChecker->('checked'), |
| 5749 |
## ISSUE: checked value not (yet?) defined. |
## ISSUE: checked value not (yet?) defined. |
| 5750 |
## TODO: tests |
## TODO: tests |
| 5758 |
$checker = |
$checker = |
| 5759 |
{ |
{ |
| 5760 |
## TODO: accept |
## TODO: accept |
| 5761 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5762 |
required => $GetHTMLBooleanAttrChecker->('required'), |
required => $GetHTMLBooleanAttrChecker->('required'), |
| 5763 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5764 |
} elsif ($state eq 'submit') { |
} elsif ($state eq 'submit') { |
| 5765 |
$checker = |
$checker = |
| 5766 |
{ |
{ |
| 5767 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5768 |
action => $HTMLURIAttrChecker, |
action => $HTMLURIAttrChecker, |
| 5769 |
## ISSUE: Not yet defined. |
## ISSUE: Not yet defined. |
| 5770 |
## TODO: tests |
## TODO: tests |
| 5779 |
replace => $GetHTMLEnumeratedAttrChecker->({ |
replace => $GetHTMLEnumeratedAttrChecker->({ |
| 5780 |
document => 1, values => 1, |
document => 1, values => 1, |
| 5781 |
}), |
}), |
|
## TODO: tests |
|
| 5782 |
target => $HTMLTargetAttrChecker, |
target => $HTMLTargetAttrChecker, |
| 5783 |
## ISSUE: Not yet defined. |
## ISSUE: Not yet defined. |
| 5784 |
## TODO: tests |
## TODO: tests |
| 5787 |
} elsif ($state eq 'image') { |
} elsif ($state eq 'image') { |
| 5788 |
$checker = |
$checker = |
| 5789 |
{ |
{ |
| 5790 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5791 |
action => $HTMLURIAttrChecker, |
action => $HTMLURIAttrChecker, |
| 5792 |
## ISSUE: Not yet defined. |
## ISSUE: Not yet defined. |
| 5793 |
## TODO: tests |
## TODO: tests |
| 5794 |
align => $GetHTMLEnumeratedAttrChecker->({ |
align => $GetHTMLEnumeratedAttrChecker->({ |
| 5795 |
top => 1, middle => 1, bottom => 1, left => 1, right => 1, |
top => 1, middle => 1, bottom => 1, left => 1, right => 1, |
| 5796 |
}), |
}), |
|
## TODO: tests |
|
| 5797 |
alt => sub { |
alt => sub { |
| 5798 |
my ($self, $attr) = @_; |
my ($self, $attr) = @_; |
| 5799 |
my $value = $attr->value; |
my $value = $attr->value; |
| 5816 |
replace => $GetHTMLEnumeratedAttrChecker->({ |
replace => $GetHTMLEnumeratedAttrChecker->({ |
| 5817 |
document => 1, values => 1, |
document => 1, values => 1, |
| 5818 |
}), |
}), |
|
## TODO: tests |
|
| 5819 |
src => $HTMLURIAttrChecker, |
src => $HTMLURIAttrChecker, |
| 5820 |
## TODO: There is requirements on the referenced resource. |
## TODO: There is requirements on the referenced resource. |
| 5821 |
## TODO: tests |
## TODO: tests |
| 5834 |
}->{$state}) { |
}->{$state}) { |
| 5835 |
$checker = |
$checker = |
| 5836 |
{ |
{ |
| 5837 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5838 |
## NOTE: According to Web Forms 2.0, |input| attribute |
## NOTE: According to Web Forms 2.0, |input| attribute |
| 5839 |
## has |template| attribute to support the |add| button |
## has |template| attribute to support the |add| button |
| 5840 |
## type (as part of the repetition template feature). It |
## type (as part of the repetition template feature). It |
| 5848 |
} else { # Text, E-mail, URL, Password |
} else { # Text, E-mail, URL, Password |
| 5849 |
$checker = |
$checker = |
| 5850 |
{ |
{ |
| 5851 |
|
accesskey => $HTMLAccesskeyAttrChecker, |
| 5852 |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
autocomplete => $GetHTMLEnumeratedAttrChecker->({ |
| 5853 |
on => 1, off => 1, |
on => 1, off => 1, |
| 5854 |
}), |
}), |
| 5892 |
}, |
}, |
| 5893 |
}->{$attr_ln} || $checker; |
}->{$attr_ln} || $checker; |
| 5894 |
$checker = '' if $state eq 'password' and $attr_ln eq 'list'; |
$checker = '' if $state eq 'password' and $attr_ln eq 'list'; |
|
$state = 'text'; |
|
| 5895 |
} |
} |
| 5896 |
} |
} |
| 5897 |
|
|
| 5932 |
|
|
| 5933 |
$self->_attr_status_info ($attr, $status); |
$self->_attr_status_info ($attr, $status); |
| 5934 |
} |
} |
| 5935 |
|
|
| 5936 |
|
$element_state->{uri_info}->{action}->{type}->{action} = 1; |
| 5937 |
|
$element_state->{uri_info}->{datasrc}->{type}->{resource} = 1; |
| 5938 |
|
$element_state->{uri_info}->{src}->{type}->{embedded} = 1; |
| 5939 |
|
$element_state->{uri_info}->{template}->{type}->{resource} = 1; |
| 5940 |
|
$element_state->{uri_info}->{ref}->{type}->{resource} = 1; |
| 5941 |
}, |
}, |
|
## TODO: Tests |
|
| 5942 |
## TODO: Tests for <nest/> in <input> |
## TODO: Tests for <nest/> in <input> |
| 5943 |
check_start => sub { |
check_start => sub { |
| 5944 |
my ($self, $item, $element_state) = @_; |
my ($self, $item, $element_state) = @_; |
| 5949 |
} else { |
} else { |
| 5950 |
$self->{flag}->{has_labelable} = 2; |
$self->{flag}->{has_labelable} = 2; |
| 5951 |
} |
} |
|
|
|
|
$element_state->{uri_info}->{action}->{type}->{action} = 1; |
|
|
$element_state->{uri_info}->{datasrc}->{type}->{resource} = 1; |
|
|
$element_state->{uri_info}->{src}->{type}->{embedded} = 1; |
|
|
$element_state->{uri_info}->{template}->{type}->{resource} = 1; |
|
|
$element_state->{uri_info}->{ref}->{type}->{resource} = 1; |
|
| 5952 |
|
|
| 5953 |
$element_state->{id_type} = 'labelable'; |
$element_state->{id_type} = 'labelable'; |
| 5954 |
}, |
}, |
| 5958 |
|
|
| 5959 |
## NOTE: "authors who are nesting repetition blocks should position such |
## NOTE: "authors who are nesting repetition blocks should position such |
| 5960 |
## [repetition-block-related] buttons carefully to make clear which block a |
## [repetition-block-related] buttons carefully to make clear which block a |
| 5961 |
## button applies to.": I have no idea how this can be tested. |
## button applies to." [WF2]: I have no idea how this can be tested. |
| 5962 |
|
|
| 5963 |
$Element->{$HTML_NS}->{button} = { |
$Element->{$HTML_NS}->{button} = { |
| 5964 |
%HTMLPhrasingContentChecker, ## ISSUE: -interactive? |
%HTMLPhrasingContentChecker, ## ISSUE: -interactive? |
| 6011 |
replace => FEATURE_WF2, |
replace => FEATURE_WF2, |
| 6012 |
tabindex => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
tabindex => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
| 6013 |
target => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
target => FEATURE_HTML5_DEFAULT | FEATURE_WF2X, |
| 6014 |
template => FEATURE_WF2, |
template => FEATURE_HTML5_AT_RISK | FEATURE_WF2, |
| 6015 |
type => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
type => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
| 6016 |
value => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
value => FEATURE_HTML5_DEFAULT | FEATURE_M12N10_REC, |
| 6017 |
}), |
}), |