Directory of RSS feeds
Statistics

RSS feeds in the directory: 374

Added today: 0

Added yesterday: 0

Hi-Tech / Internet

Fantastic web specifications and where they live

Css-live - Severstal your world! 06.08.2019 at 14:30

Community that speaks the languages of HTML, CSS and JavaScript

Many developers have that much to hide, do not like specs. Some consider them boring. Others they all seem to be monsters, not otherwise generated by Malicious mythical (unbelievable but it's true: that's right — Echidna — called system of automatic publication used in W3C). Beginner they can be confusing, as goblins, trap, like a siren, and the puzzle unsolvable riddles like the Sphinx. But those who penetrated into their secrets and subjugated their power, sometimes legends of the frontend.

This article will tell you about the main dangers of a newbie in the realm of the spec, where they can expect, how you can recognize them, and how to "tame" the specifications and to make them his faithful servants and helpers.

Specifications-werewolves

Standards for web does a lot of organizations. There is an international organization for standardization (ISO). There is an international electrotechnical Commission (IEC). There is ECMA — once modest of the "European Association of manufacturers of computers", and now a world "workshop" standards Javascript. Has the Engineering Council of the Internet engineering task force (IETF) — it works, view the RFC some figures, you too have probably come across. There are separate groups of representatives of firms or simply specialists, enthusiasts, developing a particular standard — for example, schema.org or microformats (however, the first "took wing" W3C rights of social groups). Finally, there is the WHATWG... but about it later separately.

of Course, the most famous and recognizable organization for many has become synonymous with web standards Consortium web or WWW consortium, W3C. Where "w3" ("three w") — a further reduction for "www". Not everything that begins with "w3", has some relevance to the W3C. There are just similar names — accidentally or on purpose. And Abibas-Adidas, Nokia and Nokla, W3C and W3Schools. Beware of imitations!

There are a lot useful for web developer training and reference resources. W3Schools — one of them, not the best (once was generally terrible, now visibly corrected). But these resources are not specifications, especially not standards. A phrase such as "it is written in the specifications W3Schools" clearly gives... in the best case, the victim of a delusion.

the Fairness, reference and training materials are usually written in a clearer and more accessible. Perhaps the best resource with such materials — MDN, in fact, the Wikipedia front-end, which now work together all the leaders of the industry. And well that these resources are the first link in the search engines for the name of the HTML tag or CSS property. But even in them there are pereopisanie, inaccuracies and outdated information. They simply can not keep up with the changes made to these specifications. The more translations.

in Short: feature specifications from training and reference materials.

the Specifications zombie

most of the W3C specifications that we get from search or links from articles and directories, the address begins: w3.org/TR/chto-to. TR means "Technical Reports" technical reports. Sounds strange, but understand its logic: the working group on any technology aiming to studying some problem and from time to time reports which solutions for this problem found.

every publication in the TR is the status: if it is still raw billet with a bunch of controversial places, or even the first publication on this technology is a working draft. When the solution is as follows-designed and reliably implemented, the W3C can recommend it to the entire industry — a technical report becomes a recommendation (the W3C is a synonym for standard). Prior to this specification manages to stay in the status of candidate recommendation and proposed recommendation. If the work on the specification will come to a standstill, it is published with a status of "Note" (Working Group Note).

All published W3C technical reports, regardless of status, are stored forever. Each version has a constant length reference type https://www.w3.org/TR/2008/WD-html5-20080610/ where encrypted status (e.g. Working Draft, working draft) and publication date (10 June 2008). Such fossil version sometimes "pop up" in search engines, the links in old articles, etc. Sometimes they retroactively hang warning the die that the material is outdated (as in CSS2.1) but often not (as in the day of the publication of the article was on HTML5.1).

Therefore, even this specification on the W3C site can be long and hopelessly irrelevant. Beware of expired products, look at the date!

in addition to a long links to history, each has the link as w3.org/TR/ (e.g., https://www.w3.org/TR/html/) — the latest published version ("Latest published version"). In the header of each specification provided a permanent link to that specific version (for archive/history), the last published version and one or two previous (usually). And yet — for the current editorial draft ("Editor's Draft", ED).

Many people think that "editing draft" is something raw, some even earlier than the "working draft" TR. But the editorial draft, have Mature specifications. It's just the current working version of the document. As master branch in git, which from time to time "Bud" releases. It real-time corrected bugs and added new updates. Therefore, many experts advise to check with editorial draft, and not the archival copies of TR.

And don't worry if the link to the editorial draft is not on the domain w3.org. As, for example, csswg.org (the domain of the CSS working group — division of the W3C, dealing specifically with the styles), and even on Github. It's not a bug, but a feature!

in Short: use only fresh versions of the spec, avoid archived versions. Best — editorial drafts. Or at least the latest published versions, if they are not older than six months.

Specifications-ghosts

On the statuses and the dates on which the confusion does not end: one technology may be a few editorial rough drafts!

for Example, we have CSS module cascading and inheritance level 4, already published in the status of a candidate recommendation, with editorial draft at https://drafts.csswg.org/css-cascade/ (just in case: CSS — still cascading style sheets!). But there is the same module level 3: posted it in exactly the same status and the same day. And he has his own editorial draft: https://drafts.csswg.org/css-cascade-3/. Some of these drafts are "more relevant"?

most Often helps is a rule: the more urgent where the link leads without numbers, like "technology in General". For example, the above-mentioned /css-cascade/ (without the figures) leads to unit 4 level. So, it's — current specification and /css-cascade-3/, with the figure already slightly yesterday (nothing new there do not appear, will only be refined formal details). But just a /css-animations/ leads module specifications level 1, so actual he, and /css-animations-2/ — is still too raw processing, a collection of "ideas for the future."

With CSS we are generally lucky: we have a list of all editorial drafts https://drafts.csswg.org/ where all the modules available in parallel in two or more "branches", in contrast the current version is PostScript "Current work".

Fig. 1. If multiple modules of different levels, the actual current marked as "Current work"

And the maturity of the modules it is convenient to watch for the "traffic lights" on the page "Current work": green means it's probably more or less ready, red — better to wait. Just be careful with the status of "Note" ("Note"): it is also green (work unit is finished), but it may be due to the fact as having no normative status, but still finished document (eg. http://www.w3.org/TR/CSS describing the state of "CSS all" for the current year) and the abandoned "semi-finished" the stalled operation (as some https://www.w3.org/TR/css3-marquee/). Such is the mysterious status..:)

Fig. 2. Approximate transcript "traffic light" status of the modules on the page "Current work" Working group CSS

in Short: the shorter the address specification (the less it additional digits), the better. For CSS specifications refer to the page "Current work" and marked "Current work" in the list of editing drafts. Be careful with the documents in the status of "Note" ("Note").

the Specifications trolls

Old version of W3C technical reports are kept forever not just. One of the objectives of open web standards is to protect the technology from patent trolls to all market participants were equal. To do this, a long-established W3C patent policy. From WHATWG — though not so long ago too.

Patent lawyers often have to shovel mountains of sources, carefully checking all the intricate wording.

Sometimes it takes months and years. All this time the document should not change. That's what always stored technical reports!

the documents involving lawyers — among which there are those more patent trolls! — there is another nasty feature: the complex and convoluted language in which they are written. With lots of cross references, footnotes and clarifications. In addition, the mass term is determined through other documents. That, too, can change and become obsolete. This particularly nothing to do. To become a guru of specifications, the language you just have to learn. The method of practice, the other apparently not. No accident that in the HTML specification, in a special section "how to read this specification" says:

This specification should be read in the same way as all other specifications. First from cover to cover several times. Then in the reverse direction at least once. Then you need to read it, choosing random topics in the table of contents, and turning on all the cross-links.

fortunately, in addition To dry formulations for patent (and not less than a dry verbal descriptions of algorithms for developers of browsers), in the specifications there are real notes in simple language, examples and illustrations. But if they are not enough — you can always add more (as on that below).

in Short: just read the specification:)

Specification — two headed Hydra

Much confusion was caused by the fact that the two specifications of HTML and W3C HTML5 (his editorial draft — https://w3c.github.io/html/) and "living standard," WHATWG HTML ("evergreen" and "living" at the address https://html.spec.whatwg.org). Who to believe?

the History of relations between the W3C and WHATWG — one of a series stretching from the mid-2000s. the very "working group on technologies for web applications" (as WHATWG stands for) arose as a response to developers of browsers to a glaring gap W3C (with his then dreams about the imminent epidemic XMLizatsii) from reality. Real browsers had to cope with existing content, and that often were not compatible with any standard and were held only on non-standard crutches. It took a pragmatic standard, is compatible with what we have and what I want in the future. A large part of a huge work on analyzing and documenting the real situation in the web, the outcome of which was HTML5 has done one man — Ian Hickson.

some time, WHATWG and W3C have tried to work on the standard together — some continually introduced new features, the second, in the usual leisurely discussion, resolved the problems with patents and so forth. But they were very different vision of the task specification, a different approach to its structure (a giant monolith from WHATWG vs modularity at W3C) and editing, all this are layered over time, the differences in detail and, unfortunately, personal insults from both sides...

for a Long time, a key advantage has been its W3C patent policy. But WHATWG got it and this card, having your. And recently, the confrontation ended: the parties signed a joint Memorandum of the surrender by the W3C. WHATWG won. Fortunately, many of the most important differences (for example, how many page can be of elements ) the parties have time to fix before then.

a Great advantage of the W3C version was that information about the availability of certain elements (default ARIA-role, etc.) integrated in the specification (largely through the efforts of Steve Faulkner, which is very close and favorite subject). But WHATWG version references Ref. W3C standards (he WAI-ARIA use of ARIA in HTML and default matching for HTML elements to accessibility APIs major platforms) as regulatory requirements. These standards are helped to understand the practical importance of many elements. And not only that: in them, it seems, holds the key to understanding notorious semantics, which is always so much controversy (on this vast subject, I think I'll write a separate article:). So don't go by them!

in Short... in General, think for yourself, decide for yourself. The future is definitely with the WHATWG standard, but the W3C standards on accessibility in any case don't forget!

How to train your specification All the advantages of open-source code

Attentive readers will have noticed that many (actually almost all) of the editor's drafts of specifications are hosted on Github. What does it mean? And the fact that web specifications is opencor. And, as in any OpenSRS, you can contributethe — to participate in its development!

At the conference Web Standards Days in Minsk in 2017 was a great report Sergey Popov just about it. Sergei opened the topic so that I can add only one item.

the report Sergey noted that participation in the above specifications you need a good technical English, without it in any way. So there is — with one important exception. This exception — tests to specs.

Tests

For most specs, especially more or less Mature (candidates in the recommendations above), the W3C has an official set of tests. Link to the test is often in the header of the specification itself, plus you can always find them in a special section of the website (W3C tests to the specifications of CSS are here: https://www.w3.org/Style/CSS/Test/). Even if you are just at leisure will reveal a set of tests in their browsers and run it — it will be a huge help to the developers specifications: statistics specification implementations in browsers, detection of difficult/controversial places and much more. Unfortunately, these tests are very difficult to automate is the correct result may depend on the font, etc., and to evaluate the correctness can only be a person.

the Typical test looks like a page with two tabs: the test and the expected results laid out in a simple way. Sometimes the top is written a short text that the test is expected in English, but very simple, the online translator normally needs to master. If both tabs are the same picture — the test passes, click the button Passed. If different test is failed, click Failed.

And even virtually any minimal example code that behaves differently in different browsers or just is not obvious is a good candidate for the tests to the appropriate standard. Browsers will be grateful to you. There is a project open Web Platform Tests with good recommendations like these to create tests.

Important details

Well, if you decided to tame some specification seriously, it is best to act on the classics. Remember? First of all, patience. First, "just sit at a distance, sidelong glances" (to open the editor's draft and selectively view any part of it), but "every day to sit a little closer" (closer look at the text, illustrations and examples, to try them in my browser...). If you noticed a typo in the word, or some example in any browser is collapsed or not matching the description — open the text file Overview.bs this specification on Github and edit directly in the browser, fix the bug. And send your first pubrequest with this edit. And don't forget that you're responsible for those specifications that are tamed.

my first example with noted inaccuracy was present in 24 an example of a CSS Grid Layout. I couldn't get past the ridiculous errors in its marking, but at the same time not to bring it into line illustration (to edit the output from the example would look like the penultimate picture here, the unit with the Department would be at the bottom). And who knows, was it of a role in how quickly and easily we were able to correct a moot point in the specification shortly after the release of CSS grids and lead the behavior of browsers with repeat(auto-fit, ...) to a single correct form?..

Finally: a little spetsificheskogo of humor:)

Fig. 3. Famous mug "CSS is awesome" (the portion of an image from Wikimedia Commons)

no matter How boring it may seem specifications at first glance, they are written by real people, not devoid of humor. Did you know that the famous picture of the "CSS is awesome" ("CSS is awesome") is used in the specifications. Visit the specifications and other "Easter eggs", like a mischievous subtitle, "Breaking the web, by fragmentise at a time" in the drafts of the module CSS fragmentation or "secret level" in the annexes to CSS2.x (added to the alphabetical order of their first letters:). Well, on April first, these gay people altogether give vent to the imagination: it will change the design for all specifications in the style of the Amateur sites of the 90s, and then release the whole comic module (with the acronym EGG — "the egg", in the sense of "Easter eggs":).

once I decided to connect to the fun and made this module also ISU April fool:). Amazingly, a joke, it seems, appreciated! In addition to the "likes", I raised the status of "contributor" to "collaborator" (with the right to reopen closed ICU that I have a couple times had to use:)

In short: go for it! Let you will be too! And don't be afraid of the specs — they're not evil and not scary!