pub enum FindingKind {
Show 13 variants
ContentOutsideBlock,
DuplicateBlock(String),
DuplicateChildren,
BindOnNonInput(String),
ClassToggleOnComponent(String),
ImageWithoutAlt,
ButtonWithoutName,
InputWithoutLabel,
LinkWithoutHref,
FormWithoutCsrf(String),
InlineEventHandler(String),
BindNotHonoured(&'static str),
RewrittenByParser(ParserRewrite, String),
}Variants§
ContentOutsideBlock
Loose content at the top level of a view that {extends} a layout.
DuplicateBlock(String)
The same {block name} twice in one template.
DuplicateChildren
{children} more than once.
BindOnNonInput(String)
bind={…} on an element that is not <input>, <textarea> or <select>.
ClassToggleOnComponent(String)
class:name={…} on a component.
ImageWithoutAlt
<img> without an alt attribute (an empty alt="" marks it decorative and is fine).
ButtonWithoutName
<button> with no text, no hole, and no aria-label/aria-labelledby/title.
InputWithoutLabel
A form control with no <label for>, no wrapping <label>, and no aria-label.
LinkWithoutHref
<a> without href.
FormWithoutCsrf(String)
A <form> whose method changes state, with no _csrf field in it.
InlineEventHandler(String)
An inline event-handler attribute (onclick, onerror, …) — a JavaScript sink.
BindNotHonoured(&'static str)
A bind on a form control the browser will not let a page write — <input type="file">
and <select multiple>.
★ CHECKED HERE, NOT AT A TIER, because the mistake is semantic rather than a limit of any
one backend: a file input’s value cannot be set by a page ANYWHERE, and a multiple select’s
value is a list on every tier. A tier-specific gate would let any tier outside it accept it
happily — the binding written as a plain text setValue does nothing and reports nothing.
The wording comes from BoundInput::refusal() so the check and the lowering cannot drift.
RewrittenByParser(ParserRewrite, String)
Markup a browser’s HTML parser does not keep as written — what (an element, or text)
where the parser moves, wraps or closes it — so the document a browser builds from the
pre-rendered page is not the page the view draws, and the page is drawn again as it loads.
Trait Implementations§
Source§impl Clone for FindingKind
impl Clone for FindingKind
Source§fn clone(&self) -> FindingKind
fn clone(&self) -> FindingKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FindingKind
impl Debug for FindingKind
Source§impl PartialEq for FindingKind
impl PartialEq for FindingKind
impl Eq for FindingKind
impl StructuralPartialEq for FindingKind
Auto Trait Implementations§
impl Freeze for FindingKind
impl RefUnwindSafe for FindingKind
impl Send for FindingKind
impl Sync for FindingKind
impl Unpin for FindingKind
impl UnsafeUnpin for FindingKind
impl UnwindSafe for FindingKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.