I think some of this would require a dependent type system, which we don't have. And while in this case, it would be really nice I can't imagine that it is worth it.
Maybe a post processor that could do HTML sanity testing would be useful? I can imagine using the Elm AST package and some kind of rules engine you could build something like this, but it would be a different set of constraints Zach ᐧ On Sun, Jul 2, 2017 at 5:30 PM, Steve Schafer <[email protected]> wrote: > Putting aside the practicality for a moment, a couple of things: > > > 1. A distinction needs to be made between merely senseless and > prohibited by spec.For example, the *hr* element allows the *lang* > attribute, even though it makes no sense. We should not prohibit attributes > that make no sense if the spec allows them. > 2. Whether or not an attribute is allowed by spec is not always > simple. For example, on the *a* element, the *target* attribute is > permitted, but only if the *href* attribute is also present. > > > -Steve > > > On Saturday, July 1, 2017 at 6:06:35 PM UTC-4, [email protected] > wrote: >> >> Hi everyone. >> >> It's been some time that I'm thinking about type checking HTML Attributes >> to ensure at compile time that useless attributes can't be set on HTML. For >> instance, it makes no sense to set Html.Attributes.src to an h1 title. >> >> I was imagining simple cases : >> >> Html.a [ Html.Attributes.href "#" ] [] => compile >> Html.a [ Html.Attributes.src "#" ] [] => does not compile >> Html.img [ Html.Attributes.src "#"] [] => compile >> Html.iframe [ Html.Attributes.src "#" ] [] => compile >> >> Obviously, this behavior should be extended to every attributes on every >> HTML elements. 🙂 >> I was thinking about Phantom Types, but I can't figure a correct way to >> do it. >> >> Anyone has an idea on what I should give a try? >> >> Just in case, I know the cost to do it will probably be higher than what >> it actually, but, hey! Error checking at compile time is so good that no >> trying it would be too bad! > > -- > You received this message because you are subscribed to the Google Groups > "Elm Discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Zach Kessin Teaching Web Developers to test code to find more bugs in less time Skype: zachkessin +972 54 234 3956 / +44 203 734 9790 / +1 617 778 7213 -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
