WEBVTT

00:00:00.135 --> 00:00:06.477
Also, kannst du mir den Use-Case noch mal erklären? Ich hab das nicht ganz verstanden, wofür ich das Model-Element haben möchte.

00:00:06.537 --> 00:00:12.675
Das ist eigentlich so was wie eine WebGL-Canvas oder eine, was benutzt man mittlerweile, WebGPU-Canvas,

00:00:13.188 --> 00:00:23.817
nur eben in Markup-Form und dann eben mit der Möglichkeit, dass man nur sagt, Browser, hier ist 3D, ein 3D-Raum für die Vision Pro.

00:00:24.135 --> 00:00:26.889
Ihr seid dran, ich kann jetzt ja eh nix mehr machen.

00:00:27.213 --> 00:00:28.600
Canvas plus ein Soundrummer rum.

00:00:28.933 --> 00:00:29.777
Genau.

00:00:30.562 --> 00:00:32.876
Es heißt also jetzt Pre-Render, aber es rendert nicht mehr pre.

00:00:33.884 --> 00:00:41.221
Ja, genau. Okay, das passt gut in die Webentwicklung rein, find ich. Ja, so ist es.

00:00:42.160 --> 00:01:06.800
Music.

00:01:07.637 --> 00:01:44.637
Revision 589. Und da sind wir wieder mit unserem State-of-HTML.

00:01:44.637 --> 00:01:51.412
Wir versuchen mal, heute zu einem Ende zu kommen. Mit dabei ist, wie die letzten beiden Male, der Peter.

00:01:51.871 --> 00:01:58.637
Moin, moin. Und ich bin der Shep. Und wir machen da weiter, wo wir zuletzt aufgehört haben.

00:01:59.424 --> 00:02:03.385
Bzw. beim nächsten Topic. Wir hatten zuletzt Client-Hints.

00:02:03.637 --> 00:02:07.751
Und jetzt haben wir hier die Resource-Hints.

00:02:07.949 --> 00:02:15.385
Ist, glaube ich, auch schon so ein relativ, also kein ganz neuer Root mehr, würde ich sagen, oder?

00:02:16.042 --> 00:02:19.437
Nee, noch eine kurze Erklärung. Das sind diese REL-Attribute,

00:02:19.437 --> 00:02:24.828
die ich auf irgendwelche externen Ressourcen, die ich mit Link einbinde, mache, ne?

00:02:25.143 --> 00:02:25.593
Mh.

00:02:26.619 --> 00:02:35.169
Genau, also Prefetch, Preconnect und Preload und dann vielleicht Prerender,

00:02:35.169 --> 00:02:37.260
das ist nochmal so ein Kandidat, über den können wir sprechen.

00:02:37.458 --> 00:02:44.183
Denn Prerender gab es ja schon auch vor Äonen und wir haben da sicherlich auch drüber gesprochen.

00:02:44.291 --> 00:02:53.469
Aber das funktionierte damals so, dass die Chromium-Browser-Seiten im Hintergrund,

00:02:54.454 --> 00:03:00.969
komplett schon vorgerendert haben, weswegen so Analytics-Tools dann auch so Abfragen auf

00:03:00.969 --> 00:03:06.969
Page-Visibility einführen mussten, um nicht zu zählen, wenn jemand eben eine geprerenderte

00:03:06.969 --> 00:03:14.089
Seite geöffnet hat, sondern erst dann zu zählen, wenn diese geprerenderte Seite auch dann sichtbar

00:03:14.089 --> 00:03:21.409
wurde. Aber das wurde dann irgendwann wieder eingestampft, weil das halt relativ ressourcenintensiv

00:03:21.409 --> 00:03:25.409
Also, ich meine, du konntest das immer nur für eine Seite machen.

00:03:25.926 --> 00:03:30.409
Aber im Worst-Case bedeutete das, mit jeder Seite, die du eben aufrufst und betrachtest,

00:03:30.409 --> 00:03:35.409
wird immer noch mal eine zusätzliche Seite komplett mit all ihren Ressourcen im Hintergrund aufgerufen

00:03:35.409 --> 00:03:37.409
und auch im Hintergrund geprerendert.

00:03:39.628 --> 00:03:45.409
Das ist zwar dann toll, wenn man just zu dieser Seite dann weiterbrowst, dann konnte der Browser die eben einfach,

00:03:46.370 --> 00:03:47.409
direkt anzeigen.

00:03:47.730 --> 00:03:55.509
Aber in der Gesamtbilanz war das irgendwie nicht so cool. Und darum wurde das wieder eingestampft,

00:03:55.509 --> 00:04:01.309
aber es ist wieder zurück, vielleicht irgendwie seit drei, vier Jahren oder so was.

00:04:01.309 --> 00:04:07.309
Und was jetzt passiert ist, dass das quasi ein Prefetch-Deluxe ist.

00:04:07.309 --> 00:04:12.509
Also, der Browser geht eben jetzt hin, das ist auch wieder die Chrome-Browser,

00:04:12.693 --> 00:04:15.709
und holt das HTML-Element, äh, Dokument,

00:04:16.267 --> 00:04:22.009
und passt das dann, aber der Ressourcenscanner geht dann da durch und holt dann wiederum noch mal die ganzen Subressourcen,

00:04:22.049 --> 00:04:23.109
die da drin sind.

00:04:23.149 --> 00:04:28.309
Das heißt also, dieses ganze Ressourcenfetchen, dieser ganze Rattenschwanz,

00:04:28.349 --> 00:04:31.909
der steckt eben weiterhin jetzt in diesem Prerender drin.

00:04:32.129 --> 00:04:36.117
Aber das letztendliche Rendern selbst, das findet nicht mehr statt.

00:04:36.477 --> 00:04:39.844
Das ist dann erst, wenn du die Seite dann auch öffnest.

00:04:40.312 --> 00:04:42.734
Das heißt also, jetzt Prerender, aber es rendert nicht mehr pre.

00:04:43.976 --> 00:04:53.826
Ja, genau. Okay, das passt gut in die Webentwicklung rein, finde ich. Ja, so ist es.

00:04:53.826 --> 00:05:01.826
Ich meine, das ist schon irgendwie ein bisschen ein seltsamer Ansatz. Also, nur weil du halt irgendwie eine

00:05:01.826 --> 00:05:05.826
einigermaßen lineare Seitenstruktur hast, also ich meine, es ist ja so,

00:05:05.826 --> 00:05:09.826
also entweder hast du dann einfach was, was einfach so gebrowst wird wie Wikipedia,

00:05:10.092 --> 00:05:14.260
Der macht ja relativ wenig Sinn, weil du weißt ja nie, auf welchen von den vielen Links der Mann als nächstes klickt.

00:05:14.377 --> 00:05:20.786
Aber schon wenn du irgendwie so in die Richtung von so, keine Ahnung, in der Newsseite oder so gehst, die einigermaßen halb Seiten ist,

00:05:20.786 --> 00:05:26.306
dann versuchen sie dich ja schon in den nächsten Artikel reinzuschieben, damit du schön durchklickst.

00:05:27.610 --> 00:05:31.866
Und sozusagen, was ja ohnehin schon so ein bisschen nach Manipulation riecht, so ein bisschen.

00:05:31.866 --> 00:05:39.226
Und dann halt auch noch zu sagen, sozusagen, die Kosten, um das auch noch möglichst smooth zu machen, bürden wir dir auch noch auf.

00:05:39.226 --> 00:05:43.226
Kosten jetzt ein bisschen in Air-Quotes, weil wegen des ganzen Pre-Rendern, so Fashions und so.

00:05:43.226 --> 00:05:47.226
Aber das kann der Client auch noch machen, dass man es denen auch noch leichter macht.

00:05:47.226 --> 00:05:51.226
Ist ja alles ein bisschen fishy. Man könnte auch gucken, ob man noch mal hinschaut,

00:05:52.006 --> 00:05:52.276
ob die Bilder schneller laden.

00:05:53.226 --> 00:05:57.226
Teilgröße reduzieren oder so. Es hört sich für mich immer so an,

00:05:57.226 --> 00:06:00.594
du bist der Performance-Pups, nicht ich. Aber immer so Sachen wie dieses ganze.

00:06:01.486 --> 00:06:05.226
Ein paar Attribute verteilen, um wirklich das Feintuning zu machen,

00:06:05.226 --> 00:06:07.778
daran, was jetzt als nächstes in welcher Reihenfolge gefetcht wird.

00:06:08.226 --> 00:06:14.646
Klingt für mich immer, als würde man da vergleichsweise viel mentale Energie reinstecken und sehr viel fummeln,

00:06:14.706 --> 00:06:18.346
wo man eventuell ja auch einen ähnlichen Speedup erreichen könnte,

00:06:18.406 --> 00:06:21.766
indem man schaut, hab ich eigentlich Treeshaking wirklich an?

00:06:21.826 --> 00:06:23.926
Oder ist das Bild wirklich kontinuiert?

00:06:23.986 --> 00:06:29.618
Ja, genau, das sind dann vielleicht so Sachen, die man zum Schluss, wenn man alles andere abgeklappert hat,

00:06:29.807 --> 00:06:30.966
noch machen kann.

00:06:31.319 --> 00:06:41.526
Ähm, genau. Ich benutze eigentlich Prerender auch nie, weil eben in der Regel, dass man kein lineares Navigieren hat,

00:06:41.566 --> 00:06:43.566
wo klar ist, wo jemand hinkommt.

00:06:43.606 --> 00:06:48.766
Also, du könntest natürlich sagen, per Intersection Observer oder beim Mouse-Hover oder so,

00:06:48.806 --> 00:06:55.066
dann sagst du eben, der Link ist gerade im Viewport oder die Maus bewegt sich darauf zu.

00:06:55.106 --> 00:07:01.066
Und dann erzeuge ich eben schnell so ein Pre-Render-Gerät, das ich in Stom einhänge.

00:07:01.106 --> 00:07:04.066
Und dann kann der Browser schon mal irgendwie losrennen.

00:07:04.681 --> 00:07:10.245
Und wenn die Besucherin oder Besucher dann tatsächlich diesen Link aufruft, dann habe ich was gewonnen.

00:07:10.560 --> 00:07:16.483
Das geht also. Du hast gerade gesagt, so einen Prerender kann ich nur einen haben.

00:07:16.564 --> 00:07:23.486
Aber das verstehe ich jetzt als, ich kann zu jedem Zeitpunkt immer nur eine pre-gerenderte Kugel in der Kanone haben.

00:07:24.856 --> 00:07:29.566
Aber ich kann die ... Du kannst es auswechseln. Aber vielleicht täusche ich mich auch.

00:07:29.566 --> 00:07:32.566
Vielleicht ist das auch mittlerweile gar nicht mehr der Fall.

00:07:32.566 --> 00:07:34.218
Das gucken wir direkt mal nach.

00:07:34.566 --> 00:07:36.468
MDN, Prerender, mal sehen, ob wir das hier haben.

00:07:37.066 --> 00:07:44.489
Aha. Rel, Prerender, da, aus April. Ah, Deprecated, okay. Non-Standard, hm.

00:07:44.566 --> 00:07:45.444
Tja.

00:07:45.894 --> 00:07:49.066
Vielleicht ist es ja auch schon wieder kaputtgegangen. Moment.

00:07:49.066 --> 00:07:53.066
Aber in Chrome ist es auf jeden Fall noch aktiv.

00:07:53.312 --> 00:08:03.366
Und tja, mehr steht da nicht. Ja, müsste man nochmal, Web, Web.dev war das?

00:08:03.366 --> 00:08:04.925
Prerender, das ist doch hier.

00:08:05.438 --> 00:08:11.766
Web.dev. Das ist, wenn man die Sachen sucht, die wirklich irgendwie sehr randständig sind.

00:08:11.766 --> 00:08:15.866
Genau, wobei ich jetzt zu developer.chrome.com gekommen bin.

00:08:15.866 --> 00:08:21.066
So, und bla bla bla. Es scheint wirklich keine Spezifikation dafür zu geben.

00:08:21.525 --> 00:08:21.849
Nee.

00:08:24.280 --> 00:08:25.900
Äh, so.

00:08:30.698 --> 00:08:38.066
Ah ja, genau. Ah ja, du kannst jetzt auch noch so, ah, es gibt noch so the Speculation Rules API.

00:08:38.066 --> 00:08:40.066
Stimmt, die kamen dann jetzt auch.

00:08:40.232 --> 00:08:45.066
Und, äh, keine Ahnung, ich würde sagen, wir verlinken einfach auf diese Seite.

00:08:45.246 --> 00:08:46.551
Dann kann man sich das da angucken.

00:08:47.066 --> 00:08:53.766
Äh, möglicherweise ist es so, Das ist so, dass man von den Pre-Render mehrere haben kann.

00:08:53.766 --> 00:08:57.766
Ich guck mal, ob ich das hier so direkt sehe.

00:09:01.108 --> 00:09:05.598
Die Speculation Rules API ist aber, wenn ich jetzt richtig sehe,

00:09:05.598 --> 00:09:08.039
auch nur ein Draft Community Group Report.

00:09:08.850 --> 00:09:14.798
Also, das ist so quasi der Facebook Post unter den Spezifikationen.

00:09:15.259 --> 00:09:18.798
Ja, aber das ist ja bei Chrome schon öfters der Fall,

00:09:18.798 --> 00:09:24.370
dass Sachen, sagen wir mal, sehr frühzeitig schon mal

00:09:24.676 --> 00:09:27.367
sozusagen geprototypt oder auch geschippt werden.

00:09:27.538 --> 00:09:33.498
Genau, also Hauptsache, man hat ein neues Feature und hintenher tut man noch irgendwie so ein bisschen Spezifikationstext,

00:09:33.498 --> 00:09:40.538
damit man sich sozusagen eine brauchbare Verteiligung...

00:09:41.006 --> 00:09:45.258
Dass man sich nicht sagen lassen muss, man wäre der neue Internet Explorer.

00:09:45.921 --> 00:09:49.298
Genau, ob man wollte, ja. Aber die anderen wollten halt nicht.

00:09:49.298 --> 00:09:53.658
Die hätten ja an dem Dokument mitarbeiten können. Das hast du ja schließlich auf die Facebook-Seite geschrieben

00:09:53.658 --> 00:09:56.760
und jeder, der da drauf ist, hätte das lesen können und hätte mitmachen können.

00:09:57.381 --> 00:10:05.672
Eben. Ja, also das zu Prerender, genau. Ansonsten gibt's auch noch so, man kann ja auch noch so Sachen machen, wie, äh,

00:10:06.149 --> 00:10:13.818
also, du kannst ja dein, wenn du jetzt so einen statischen Seitengenerator hast, zum Beispiel kannst du eben hingehen und die Google Analytics

00:10:13.818 --> 00:10:17.818
API abfragen und dann kannst du quasi ableiten,

00:10:17.818 --> 00:10:25.818
okay, Leute, die auf der URL sind, surfen meistens auf jene URL weiter und dann kannst, also das ist ja so dieses, auch dieses

00:10:25.818 --> 00:10:34.418
speculative prefetching oder preloading und kannst dann entsprechende resource hint angaben in dein

00:10:34.418 --> 00:10:43.178
dokument rein rendern so aber ich finde es eine lustige coole idee aber ob man das jetzt in der

00:10:43.178 --> 00:10:49.538
praxis auch so machen sollte da bin ich noch nicht so überzeugt von es gibt sicherlich wo das voll

00:10:49.538 --> 00:10:52.997
sinnvoll ist also ich stelle mir jetzt irgendwie sofort was den siebenteiligen podcast wenn du,

00:10:53.738 --> 00:10:59.578
da in der Episode 4 den Link auf Episode 5 pre-renderst. Nicht die bescheuertste Idee.

00:11:01.216 --> 00:11:05.348
Bei einer normalen Webseite schaut mal, ob euer Treeshaking in JavaScript wirklich funktioniert.

00:11:06.689 --> 00:11:10.066
Und dann werdet ihr sehen, dass es das nicht tut, und dann werdet ihr das reparieren, und dann ist es viel, viel schneller,

00:11:10.066 --> 00:11:12.766
und ihr müsst nicht mal was am HTML machen. Ja.

00:11:14.215 --> 00:11:19.066
Genau. Sonst, hast du noch irgendwie Fragen zu den Resource-Hints?

00:11:19.635 --> 00:11:23.066
Nö, also meine Frage wäre wirklich gewesen, ob meine gerade skizzierte Einstellung

00:11:23.479 --> 00:11:26.746
so, kannst du machen, wenn du alles andere fertig hast, ob das zutrifft?

00:11:27.066 --> 00:11:28.538
Das scheint der Fall zu sein, damit bin ich happy.

00:11:29.465 --> 00:11:35.206
Ja, absolut. Und ist auch wieder so eine Footgun, ne? Also, wenn alles wichtig ist, ist dann wieder nichts wichtig.

00:11:35.246 --> 00:11:41.486
Und manchmal ist es auch eher sinnvoll, nicht Sachen zu priorisieren, sondern andere zu depriorisieren.

00:11:41.526 --> 00:11:47.666
Was jetzt zum Beispiel mit diesem ... mit Fetch Priority, ich weiß nicht, ob das hier noch irgendwie kommt,

00:11:47.706 --> 00:11:51.406
aber da kannst du ja quasi, also, Ressourcen höher ...

00:11:51.446 --> 00:11:54.671
Also, du kannst Priorität verändern im Ladeprozess.

00:11:55.158 --> 00:12:05.706
Und anstatt dass du eben jetzt zum Beispiel irgendwelche bilder hochstufs oder so könntest du auch sagen ich stufe andere dinge runter das macht dann auch die,

00:12:06.566 --> 00:12:10.086
die pipeline sozusagen räumt die frei für für wichtigere dinge.

00:12:12.721 --> 00:12:18.266
Was halt von einer von einer welt ausgeht in der die handelnden entwickler das komplette,

00:12:19.788 --> 00:12:22.086
system im blick und unter kontrolle haben,

00:12:22.777 --> 00:12:35.006
ja genau das ist ja auch meistens nicht der fall ich erinnere mich an geschichten wie er zum beispiel jetzt kocht reis erzählt hat wieso eine startseite von sowas wie weiß ich nicht der

00:12:35.006 --> 00:12:42.690
bahn oder so man ja irgendwie sagen möchte irgendwie so ich will von nach um so und so viel uhr dass das wichtigste ist ist aber das kleinste warum einfach nur weil alle

00:12:42.886 --> 00:12:50.246
anderen dinger irgendwie bahn bonus hier und weil sie nicht deutschland ticket alles ja stakeholder sind und die burschen da alle so mit ranken muss ja plötzlich

00:12:50.246 --> 00:12:54.126
im politischen Prozess ausfechten und außerhalb eben einer Developer-Diktatur

00:12:54.126 --> 00:12:58.281
ist das mit der Fetch Priority halt schon schwierig zu implementieren.

00:12:59.893 --> 00:13:04.583
Ja, und dann hast du vielleicht noch Micro-Frontends, die dann irgendwie noch aufgeteilt sind.

00:13:04.623 --> 00:13:08.883
Das heißt, da gibt's dann vielleicht auch keine Gesamtaorchestrierung,

00:13:08.923 --> 00:13:11.463
was quasi solche Dinge angeht, untereinander.

00:13:12.217 --> 00:13:17.003
Ähm, ja. Aber wer eben handcrafted oder die Möglichkeit hat,

00:13:17.043 --> 00:13:21.383
das zu tun für die Personen, ist das dann vielleicht interessant.

00:13:22.056 --> 00:13:25.803
Ja, ich würd mich trotzdem vielleicht gegen ... Ich würd vielleicht sagen,

00:13:25.843 --> 00:13:27.017
wir brauchen einen ergänzenden Begriff zu Footgun.

00:13:29.033 --> 00:13:34.423
Also, weißt du, unter Footgun stelle ich mir wirklich so was vor wie das klassische C++-Ding, wo du was schreibst,

00:13:34.483 --> 00:13:37.873
was harmlos aussieht und was sofort zu einer massiven Explosion führt.

00:13:38.403 --> 00:13:40.430
Und dann ist halt dein Fuß weg. Ja.

00:13:41.357 --> 00:13:45.678
So Sachen wie irgendwie falsch prerendern oder irgendwie die Fetch-Priority durcheinanderbringen,

00:13:46.732 --> 00:13:49.283
das ist ja, sagen wir mal so, vom Effekt her ...

00:13:50.000 --> 00:13:52.683
Du merkst nicht, dass dein Fuß weggeschossen wurde, meinst du?

00:13:52.743 --> 00:13:57.867
Ja, ich bin mehr so im Formenkreis der Vergiftung oder so der krebserregenden Substanzen, weißt du?

00:13:58.147 --> 00:14:04.628
Ist das nicht vielleicht mehr so eine art irgendwie webentwicklungs akrylamit oder irgendwie so ich es ist der schleichende tod.

00:14:05.853 --> 00:14:12.892
Ja noch nicht mal halt irgendwie nur so weißt du so. Hätte auch was anderes essen können aber okay.

00:14:13.405 --> 00:14:17.411
Ja du darfst mal ein burger essen aber in jedem tag burger ist es nicht gut für dich.

00:14:17.708 --> 00:14:27.215
Genau ist nicht gut aber das merkst halt eben auch echt nicht unmittelbar und vor allem wenn du dann halt irgendwie ein tag kein burger ist dann ist auch nicht gleich irgendwie alles repariert so so in die richtung geht das halt eben du machst halt irgendwie so.

00:14:27.692 --> 00:14:34.084
Ja, letztlich den Deckel auf von der Dose, die da sagt, ich kann irgendwie genau sagen, wann da was gefetscht werden muss und der wilde Browser hat da keinen Plan.

00:14:34.543 --> 00:14:38.363
Ihr, ähm, schwierig, schwierig, würde ich sagen.

00:14:39.647 --> 00:14:40.363
Ja, stimme ich dir zu.

00:14:42.096 --> 00:14:45.386
Genau, dann haben wir hier einen Punkt, als Nächstes HTML-Module.

00:14:45.446 --> 00:14:48.667
Da frag ich mich, ob damit die alten HTML-Module gemeint sind,

00:14:48.746 --> 00:14:53.986
die es früher mal gab, so im Zuge der Web Components V0 oder was.

00:14:54.046 --> 00:14:55.662
Oder ob das jetzt was anderes ist.

00:14:56.544 --> 00:14:59.586
Du machst irgendwie so, importierst irgendwas from so und so,

00:14:59.646 --> 00:15:06.024
und from so und so soll dann halt eben auch was anderes sein können als eine JS-File, nämlich halt eben HTML.

00:15:06.987 --> 00:15:07.428
Okay.

00:15:08.724 --> 00:15:13.166
Äh, ja. Und da frage ich mich dann nur, gibt's das nicht für JSON auch?

00:15:13.166 --> 00:15:20.301
Und dann muss man da aber noch so extra Angaben machen? Und wenn ja, warum muss man das jetzt bei dem HTML-Dings nicht?

00:15:21.652 --> 00:15:25.166
Ähm, ich weiß, was du meinst. Äh, wie heißt denn das noch mal?

00:15:25.166 --> 00:15:28.466
Oder kann man nicht auch CSS mittlerweile per Module importen?

00:15:29.349 --> 00:15:34.286
Äh, Moment. Da war doch irgendwas. Sekunde, Sekunde, Sekunde. Scroll, scroll, scroll.

00:15:34.286 --> 00:15:36.334
Ah, genau. Was wir hier suchen, sind die ...

00:15:36.532 --> 00:15:43.284
Was du gerade meintest, sind die Import-Attributes. dass du sowas machen kannst, wie import json from irgendwas.json

00:15:43.563 --> 00:15:47.767
und dann kommt da halt eben noch ne syntax hinterher, die dann sagt, welcher Dateityp das ist.

00:15:48.019 --> 00:15:48.866
Mhm, genau.

00:15:49.397 --> 00:15:55.286
So, und das ist ja, wenn ich das jetzt so richtig, wenn ich jetzt so mein ECMA-Skript richtig kenne,

00:15:55.286 --> 00:16:01.100
dürfte das ja auch wieder so ein klassischer Fall sein von, da ist ne syntax spezifiziert,

00:16:01.550 --> 00:16:03.971
aber was damit gemacht wird, ist ja plattformabhängig.

00:16:05.385 --> 00:16:11.286
Also, weil bei json, weil das ja Teil von JavaScript ist, dass das irgendwie Node und Browser gleich machen sollen.

00:16:11.286 --> 00:16:17.286
Aber wahrscheinlich ist es so, wenn ich HTML im Browser importiere versus in Node importiere, oder CSS im Browser importiere

00:16:17.286 --> 00:16:22.759
versus in Node importiere, dass das schon unterschiedliche Effekte haben sollte.

00:16:23.362 --> 00:16:28.286
Okay. Also, hab ich jetzt nicht gelesen oder so, aber wenn ich so daran denke,

00:16:28.286 --> 00:16:30.879
wie Module an sich funktionieren, macht das ja irgendwie Sinn,

00:16:31.302 --> 00:16:35.011
dass man den ECMA-Script-Standard so baut, dass alle Plattformen damit bespielt werden können.

00:16:36.307 --> 00:16:39.286
Und diese Import-Attribute sind ja auch irgendwie schon Stage 3.

00:16:39.286 --> 00:16:41.286
Und da hat man auch irgendwie schon Demos von gesehen und so.

00:16:41.286 --> 00:16:42.591
Und das macht ja alles irgendwie viel Sinn.

00:16:43.286 --> 00:16:46.286
Und wie jetzt da diese HTML-Dinger reinpassen, weiß ich nicht.

00:16:46.435 --> 00:16:48.992
Weil die Syntax, die jetzt zumindest hier in dem GitHub-Repository ist,

00:16:49.286 --> 00:16:50.819
die passt da nicht zu.

00:16:53.268 --> 00:16:58.286
Nee. Aber macht natürlich Sinn, dass das irgendwie nicht irgendwie sich an ECMAScript hält.

00:16:58.286 --> 00:17:06.564
Weil das im Prinzip ja nur in einem sozusagen Subset ein Subset an JavaScript-fähigen Engines relevant ist.

00:17:07.239 --> 00:17:12.346
Naja, was du jetzt hier hast, ist ja ein ganz normales JavaScript-Import-Statement,

00:17:12.668 --> 00:17:16.016
wo halt nur die Dateiendung nach dem From eine andere ist.

00:17:16.557 --> 00:17:22.506
Genau, und wenn man dann weiter runterguckt, dann müsste das ja im Grunde genommen doch JavaScript sein,

00:17:22.506 --> 00:17:24.262
was in dieser Datei drinsteht, korrekt?

00:17:24.506 --> 00:17:31.005
Weil man ja dann im Prinzip ein Custom Element definiert mit dem, was man importiert.

00:17:32.635 --> 00:17:36.920
Also ganz abgefahren. Naja, nee, das Ding ist halt eben, erstmal, was müsste das sein?

00:17:37.037 --> 00:17:42.996
Wie immer gibt es keine Spezifikation bei dem Zeug, das haben halt nur irgendwelche Nasen mal sich so eine MD-File irgendwo auf GitHub zusammengeschrieben, ne?

00:17:43.689 --> 00:17:47.911
Ja. Also, keine Ahnung, wie das so funktioniert. Aber, ähm, was die halt tatsächlich...

00:17:48.515 --> 00:17:53.853
Also, wie das in meinem Universum funktionieren sollte, ist halt, man kann diesen, äh, dieses Attribut bei dem Import angeben.

00:17:54.708 --> 00:17:58.795
Also, das hier ist halt eben ein Import irgendwas from so und so HTML. Mhm.

00:17:58.993 --> 00:18:02.972
Und dann gibst du halt eben an, dass das ein HTML-File sein soll.

00:18:03.206 --> 00:18:07.385
Und dann kann ja die Plattform definieren, wie sie damit umgehen will,

00:18:07.385 --> 00:18:09.175
dass es ein HTML-Part ist.

00:18:09.769 --> 00:18:11.560
Also, Import ist ja bloß eine Syntax.

00:18:12.398 --> 00:18:15.945
Und der Lademechanismus geht davon aus, dass es JavaScript ist,

00:18:15.945 --> 00:18:19.446
und diese Attributsyntax ist dazu da, um zu sagen, was ist, wenn es kein JavaScript ist,

00:18:19.717 --> 00:18:22.291
damit hier unterschiedliche Plattformen unterschiedliche Dinge damit machen können.

00:18:22.660 --> 00:18:28.345
Und wenn ich jetzt sagen würde, ich wollte HTML importierbar machen in JavaScript über die ECMAScript-Modul-Syntax,

00:18:28.345 --> 00:18:33.859
würde ich sagen, klingt gut, aber verwende doch den gleichen Ansatz wie bei Jason, dass du hinten ein Attribut dran klemmst,

00:18:34.372 --> 00:18:40.345
das sagt, das soll bitteschön verarbeitet werden, als in dem Fall HTML, nach den Regeln der Plattform, in dem Fall des.

00:18:41.763 --> 00:18:46.345
Browsers. Ja, das würde Sinn machen. Und ich habe jetzt mal auch hier endlich gefunden, was man da in diesem HTML,

00:18:46.345 --> 00:18:49.091
also was da drin ist, das man importiert.

00:18:49.667 --> 00:18:55.068
Und das besteht aus einer Template und einem Script-Type-Module,

00:18:55.345 --> 00:18:58.345
in dem sozusagen die Custom-Element-Klasse definiert wird.

00:18:59.272 --> 00:19:02.345
Oder das JavaScript dazu. Und man hat in der Template dann

00:19:02.345 --> 00:19:08.345
einen Style-Tag mit dem dazugehörigen Style und eben dem Markup.

00:19:08.345 --> 00:19:14.345
Das heißt, es ist so ein bisschen am Ende wie so ein View-File von Vue.js oder so.

00:19:14.345 --> 00:19:17.345
Oder so, also so ein...

00:19:17.079 --> 00:19:27.469
Single-File-Auto. Genau, immer noch mit dem Drive. Man möge doch HTML Elemente, also Web-Components,

00:19:27.720 --> 00:19:30.654
möglichst in HTML definieren können.

00:19:32.789 --> 00:19:37.478
Das scheint mir so der Motivator zu sein, weil du hast recht, das sieht halt exakt aus wie ein View-File,

00:19:37.694 --> 00:19:39.589
ein bisschen Skript, ein bisschen Style, ein bisschen Template.

00:19:39.589 --> 00:19:43.798
Und sozusagen ist dann dieser HTML-Import die Möglichkeit, das alles einfach zu importieren.

00:19:44.563 --> 00:19:51.389
Ja, genau. Und wenn ich hier in Chrome Status gucke, dann sind angeblich nicht nur die Chrome-Leute finden das gut,

00:19:51.389 --> 00:19:53.610
sondern auch die Firefox- und Safari-Leute.

00:19:54.177 --> 00:19:58.300
Während wir Web-Entwicklerinnen und Entwickler da Mix-Signals geben.

00:19:59.417 --> 00:20:05.763
Vor allen Dingen würde ich gerne wissen, was so der ganzen Browser-Hersteller-Diskussionsgrundlage ist.

00:20:06.546 --> 00:20:10.889
Weil einfach so jetzt in den Browser so ein magisches Ding einzubauen,

00:20:10.889 --> 00:20:13.064
dass wenn die Datei mit HTML endet,

00:20:14.018 --> 00:20:18.389
Ja, das ist natürlich Quatsch, also es müsste ja schon irgendwie,

00:20:18.389 --> 00:20:28.389
weil nicht jede HTML oder nicht jede Datei, gerade im Web, endet ja nicht auf dieser Erweiterung.

00:20:28.530 --> 00:20:33.389
Es könnte ja auch HTML sein, es könnte gar nichts sein, es könnte groß sein.

00:20:33.389 --> 00:20:37.389
Es spricht nichts dagegen, das mit XML, mit der xHTML5 zu machen,

00:20:37.389 --> 00:20:40.971
außer halt eben, dass das keiner kennt. Aber man kann und sollte das machen können.

00:20:41.907 --> 00:20:49.451
Ja genau naja das heißt also im grunde so für uns ist das.

00:20:50.703 --> 00:20:54.159
Also, wir verstehen, wofür es gut ist. Ich find's, glaub ich, auch in Ordnung.

00:20:54.834 --> 00:20:59.075
Ich glaub, es hat halt auch nicht das Problem, dass die alten HTML-Imports hatten.

00:20:59.912 --> 00:21:04.251
Weil da war's ja, glaub ich, so, dass quasi dieses Parsing gestoppt ist,

00:21:04.612 --> 00:21:06.052
bis das importiert war.

00:21:06.112 --> 00:21:13.052
Das ist halt hier nicht der Fall, weil man kann nur aus einem ECMAScript-Modul heraus importieren.

00:21:13.271 --> 00:21:16.552
Und das ist ja quasi per Definition schon asynchron.

00:21:16.863 --> 00:21:25.712
Mhm. Genau, und uns fehlt im Grunde nur diese Annotation, die wir eben auch für JSON kennen.

00:21:26.217 --> 00:21:28.575
Und da wurden dann bei uns Forms, die halt hier nicht gibt.

00:21:29.349 --> 00:21:31.015
Naja, und einen Einwand hätte ich auch noch.

00:21:32.221 --> 00:21:35.892
Nämlich, okay, das sieht aus wie eine Viewfile, das heißt, gegebenenfalls bin ich gewohnt,

00:21:35.892 --> 00:21:37.235
dass meine Komponenten so aussehen.

00:21:38.559 --> 00:21:44.257
Aber warum würde ich die so aufbauen wollen? Warum ist das der offizielle Weg, eine Komponente zu bauen,

00:21:44.842 --> 00:21:46.392
und nicht irgendein anderer?

00:21:46.392 --> 00:21:51.992
Es gibt ja genug Prior Art, wo man sagen könnte, das ist auch eine Art und Weise, Komponenten zu schreiben,

00:21:52.413 --> 00:21:54.072
die sich als sehr sinnvoll erwiesen hat.

00:21:54.132 --> 00:21:56.072
Das ist einer von vielen, das ist Vue.

00:21:56.132 --> 00:22:00.772
Das funktioniert gut und ist total toll und alles supi. Ja, das kann ich dir aber sagen.

00:22:00.832 --> 00:22:02.460
Der Grund ist einfach nur Performance.

00:22:02.832 --> 00:22:09.672
Also du musst, also wenn du so was machst, dann willst du wahrscheinlich nur eine Datei importieren müssen.

00:22:09.732 --> 00:22:13.532
Und da muss alles drin sein, was du für diese Komponente brauchst.

00:22:13.649 --> 00:22:17.912
Weil ansonsten ist das ja eine absolute Shitshow sozusagen.

00:22:18.844 --> 00:22:23.252
Äh, vom Ladeprozess her. Und, äh, genau, ob du jetzt ...

00:22:23.312 --> 00:22:30.069
Ob das Template sozusagen parallel zum Script-Type-Module liegt oder nicht, das, äh ...

00:22:31.024 --> 00:22:35.532
Das kann man debattieren. Aber ... Ich wollt's grad sagen, es macht keinen Unterschied,

00:22:35.592 --> 00:22:41.092
ob das ein Template-Tag in einer Fake-HTML-Datei ist oder ob das ein Template-String in meiner Klasse ist.

00:22:41.092 --> 00:22:43.732
Ästhetik mal außen vor, aber das macht doch eigentlich unterm Strich keinen Unterschied.

00:22:45.391 --> 00:22:54.097
Ja, vielleicht. Vielleicht ist das ja auch gar nicht so, vielleicht ist das ja auch nur eine mögliche Ausprägung.

00:22:54.268 --> 00:23:00.740
Aber ich denke, was auf jeden Fall fix ist, ist eben die Tatsache, dass man alles in eine Datei reindonnert, wie auch immer.

00:23:01.956 --> 00:23:05.458
Ja, aber warum mache ich das nicht jetzt mit JavaScript?

00:23:07.321 --> 00:23:14.622
Vielleicht weil JavaScript einfach kostiger ist zu parsen. Also so wie man ja zum Beispiel sagt,

00:23:14.701 --> 00:23:25.701
es ist nicht klug beim Hydraten deine Daten sozusagen direkt als Objekt zu shippen,

00:23:25.839 --> 00:23:32.701
weil der Parser einfach für das Parsen eines Objektes länger braucht, als wenn du zum Beispiel

00:23:32.701 --> 00:23:35.241
ein JSON-String schippst.

00:23:35.624 --> 00:23:36.056
Ja.

00:23:36.920 --> 00:23:43.941
Also, JavaScript ist eben einfach immer teurer als HTML oder was anderes.

00:23:43.981 --> 00:23:51.321
Und darum kann ich mir vorstellen, dass es sinnvoll ist, eben das JavaScript, den JavaScript-Teil,

00:23:51.954 --> 00:23:56.077
der ein Parser und ein Just-in-Time-Compiler und was weiß ich was durchlaufen muss,

00:23:56.441 --> 00:23:57.518
so klein wie möglich zu halten.

00:23:58.161 --> 00:23:59.039
Und darum würde ...

00:23:59.777 --> 00:24:04.611
Also, weil du willst ja sagen, dann kann ich das HTML nicht als Template-String ins JavaScript packen, oder?

00:24:04.927 --> 00:24:08.881
Ja, oder warum ist das nicht irgendwie so ein React-Komponenten-mäßiges Ding,

00:24:08.881 --> 00:24:11.633
wo ich einfach so ein Sprachkonstrukt habe, das exportiere ich,

00:24:11.903 --> 00:24:17.681
und das managt sich halt irgendwie selbst, und da ist alles drin, was es braucht, Templating und so weiter und so weiter,

00:24:17.681 --> 00:24:19.105
alles einfach, weil ich meine, die ganzen ...

00:24:19.681 --> 00:24:24.650
Das kannst du ja trotzdem machen. Du könntest ja wahrscheinlich den Template-Teil weglassen

00:24:24.903 --> 00:24:29.681
und nur den Script-Type-Module-Teil drinlassen, und dann hat der das halt ...

00:24:29.681 --> 00:24:34.821
Aber warum mache ich dann immer noch einen HTML-Import versus einfach einen normalen ECMA-Skript-Import,

00:24:34.881 --> 00:24:35.354
in dem ich das ja auch machen kann?

00:24:37.083 --> 00:24:41.961
Äh, das kannst du dann natürlich auch machen, klar. Genau, also das Ding ist halt eben,

00:24:42.021 --> 00:24:46.201
das tritt an mit einem neuen Feature gegen etwas, für das ich jetzt argumentiere,

00:24:47.156 --> 00:24:47.534
was ich jetzt schon habe.

00:24:47.840 --> 00:24:53.269
Ich kann jetzt hingehen und ich kann eine Web-Component schreiben mit Template-Strings, ich kann jetzt hingehen

00:24:53.593 --> 00:24:58.607
und kann eine Raid-Komponente schreiben mit JSX, das dann auch noch getype-checkt ist und so was alles.

00:24:58.706 --> 00:25:01.371
Team-Plattform sein wollen, das ist ja der Gegner.

00:25:01.569 --> 00:25:03.801
Wir müssen geiler sein als die.

00:25:04.269 --> 00:25:06.862
Und da kannst du natürlich argumentieren aus der Web-Perspektive mit so,

00:25:07.114 --> 00:25:11.660
das Plattform ist stabil und das ist ganz nett und ist irgendwie, keine Ahnung, late vielleicht,

00:25:11.777 --> 00:25:13.911
wahrscheinlich hast du recht, wenn ich jetzt mal so React dagegen halte.

00:25:14.316 --> 00:25:17.908
Das kann ja alles sein, aber du musst halt so innen unmittelbar sozusagen auch

00:25:18.151 --> 00:25:22.418
an der Hello World Tutorial-Front irgendwie bestehen.

00:25:23.030 --> 00:25:26.388
Und wenn du jetzt irgendwie sagst, okay, du kannst jetzt, du könntest jetzt theoretisch

00:25:26.433 --> 00:25:30.141
einfach eine Komponente importiert, die Javascript ist und da steht drin, wie das Ding aussieht.

00:25:30.304 --> 00:25:34.283
Oder du könntest eine Komponente importieren, die HTML ist und in dem HTML schreibst du ein Tag

00:25:34.381 --> 00:25:37.317
und eine Klasse, die sind auf magisch indirekte Weise miteinander verbunden.

00:25:37.425 --> 00:25:41.861
Typechecking ist halt leider nicht, aber wenn du es so machst und die neueste Chrome-Beta benutzt, dann geht das.

00:25:43.564 --> 00:25:47.974
Will mein inneres Team Plattform immer noch sagen, jawoll, super, brauch ich keinen Compiler,

00:25:48.014 --> 00:25:49.814
kann mir Facebook gestohlen bleiben.

00:25:49.854 --> 00:25:54.574
Aber ich muss auch echt sagen, man macht sich das Leben dann auch ein bisschen schwieriger.

00:25:55.150 --> 00:26:02.214
Mhm. Tja, keine Ahnung, ich hab grad überlegt, ob das irgendwie was mit Server-Side-Rendering verbessert.

00:26:02.254 --> 00:26:05.026
Aber das wird's wahrscheinlich auch nicht tun. Ähm ...

00:26:05.755 --> 00:26:10.214
Ja ... Ich weiß es nicht, keine Ahnung. Also, ich weiß gar nicht jetzt,

00:26:10.254 --> 00:26:14.974
wo nachher unsere Audio-Producerin den Schnitt packt. Wir haben ja vorhin ganz zu Beginn mal darüber gesprochen,

00:26:14.974 --> 00:26:19.168
irgendwie so Probleme nicht zu lösen, sondern zu eliminieren.

00:26:19.807 --> 00:26:25.854
Ja. Wo man irgendwie sagt, keine Ahnung, ich baue meine Webseite auf eine Art und Weise auf. Wir haben die Working Draft Seite

00:26:25.854 --> 00:26:30.734
als Beispiel genommen, wo kein responsive Design ist, weil einfach so aus der Art und Weise, wie das Design gebaut ist,

00:26:30.734 --> 00:26:32.762
einfach das Ding sowieso auf jedem Formfaktor gut aussieht.

00:26:34.085 --> 00:26:39.614
So, das ist Problem eliminieren versus lösen. Und da frage ich mich ja gerade so bei so dieser extrem heißen Diskussion

00:26:39.614 --> 00:26:44.969
um so Server-Side-Rendering immer, ob das nicht auch eine Instanz von Problemlösung versus Eliminieren ist.

00:26:45.626 --> 00:26:50.574
Weil da man sich irgendwie um Server-Side-Rendering Gedanken machen möchte, ist das vielleicht nicht einfach sinnvoll,

00:26:50.847 --> 00:26:54.574
das Ding erst mal sozusagen vom Server-Side kommend zu gestalten,

00:26:55.420 --> 00:27:00.214
und dann so wie früher ein bisschen JavaScript-Interaktion über die ganze Geschichte drüber zu streuseln,

00:27:00.354 --> 00:27:05.294
statt sozusagen von Frontend zu starten und zu gucken, wie kann ich mein Frontend irgendwie dem Server begreiflich machen.

00:27:05.449 --> 00:27:09.437
Wie wäre es mit einer HTML-Seite und irgendwie drei Web-Components für die komplizierteren Widgets?

00:27:11.048 --> 00:27:17.614
Revolutionär. Aber da hol doch ich halt auch keinen Hund mit hinten vom Ofen hervor leider.

00:27:18.043 --> 00:27:21.614
Ja genau, das bekommen wir am Ende da an, wo wir mal irgendwann gestartet sind.

00:27:21.614 --> 00:27:25.614
Das ist ja bei vielen Dingen so.

00:27:25.911 --> 00:27:31.614
Aber ja, ich bin ja, so mache ich das ja in der Regel auch. Also da bin ich ja auch ein großer Fan von.

00:27:32.177 --> 00:27:37.614
Das so zu machen, wie du gerade beschrieben hast. Ich würde es auch sehr gerne machen, aber mein Gehirn ist leider Single Page verpestet.

00:27:37.614 --> 00:27:39.531
Verpestet. Ich muss da echt gegen ankämpfen.

00:27:39.865 --> 00:27:41.701
Mhm. Aber ich probier's zumindest.

00:27:43.051 --> 00:27:48.614
Ja, okay. Naja, dann lassen wir das mal hier so im Raume schweben. Interessant.

00:27:48.614 --> 00:27:50.406
Also, merkwürdiges Ding.

00:27:51.225 --> 00:27:54.583
Warum man das haben will, I don't know. Genau, liebe Hörerinnen und Hörer,

00:27:54.646 --> 00:27:58.391
sagt ihr uns doch auf Social Media oder in unserem schönen Slack-Channel,

00:27:58.697 --> 00:28:02.614
ob ihr eure schönen, einfachen React-Komponenten links liegen lassen würdet, wenn ihr dafür

00:28:02.614 --> 00:28:06.614
mit einem Import-Statement in ECMAScript eine HTML-Datei importieren könnt,

00:28:06.614 --> 00:28:09.414
ein bisschen HTML und ein bisschen JavaScript in einem extra Modul ist,

00:28:09.716 --> 00:28:11.114
das auf magische Weise zusammenspielt.

00:28:11.679 --> 00:28:18.614
Äh, Punkt. Klingt das nach einem guten Deal für euch. Ja. Wobei du jetzt ein bisschen suggestiv gefragt hast, würde ich sagen.

00:28:18.614 --> 00:28:22.874
Aber gut. Das ist für das Engagement auch ganz wichtig.

00:28:24.624 --> 00:28:32.074
All right. Dann, äh, hier, äh, sollen wir als Nächstes mal kurz Track-Element machen?

00:28:32.177 --> 00:28:35.139
Also hier Slots, weiß ich nicht, Slots hatten wir doch schon mal.

00:28:35.318 --> 00:28:40.114
Hatten wir bestimmt im Rahmen von Web Components und Krams besprochen.

00:28:40.114 --> 00:28:42.114
Lass uns das mal links liegen lassen.

00:28:42.385 --> 00:28:50.911
Genauso, Track ist, äh, ähm, ähm, ähm, ja, Video-Element mit verschiedenen Sprachen, glaub ich.

00:28:51.307 --> 00:28:56.942
Der Untertitel und, sagen wir mal, hinzugefügte Dinge.

00:28:57.689 --> 00:29:02.550
Also Metainformation letztlich zum stattfindenden Medialelement.

00:29:03.433 --> 00:29:10.114
Genau, aber Track ist das nicht auch quasi alternatives Audio-File und VTTs, also Subtitles?

00:29:10.114 --> 00:29:11.114
Ist das nicht beides?

00:29:11.454 --> 00:29:16.639
Für die alternativen Objekte, für die alternativen Quellen hast du ja Source.

00:29:18.322 --> 00:29:24.234
Ja, aber Source ist ja bei einem Video-Element jetzt zum Beispiel dann das wäre das Gesamt-Paket,

00:29:24.234 --> 00:29:26.298
also quasi Video und Audio, oder nicht?

00:29:26.928 --> 00:29:28.034
Oder kannst du das auch trennen?

00:29:28.693 --> 00:29:31.234
Aber wahrscheinlich, vielleicht hast du auch recht.

00:29:32.285 --> 00:29:37.218
Das ist eine gute Frage, das weiß ich tatsächlich jetzt aus dem Stand nicht.

00:29:38.892 --> 00:29:43.016
Ja, genau. Ich gucke mal kurz bei MDN nochmal nach, aber da, ich meine...

00:29:43.295 --> 00:29:48.734
M, D, N, L, O ist die Spezifikation.

00:29:48.734 --> 00:29:51.534
Ich will wissen, was das Content-Model in den HTML-Specs sagt.

00:29:51.534 --> 00:29:53.534
Dann weiß ich nämlich, was man ins Video-Element reinschreiben kann.

00:29:53.534 --> 00:29:54.989
Dann kann ich rausfinden, was da drin ist.

00:29:55.034 --> 00:30:09.734
Genau. Kind, Captions, Subtitles, Chapters, Metadata. Okay. Ich überlege gerade, wie das mit alternativen Sprach-Tracks ist.

00:30:09.734 --> 00:30:13.083
Glaubt ihr das gar nicht? Kann das das Videoelement vielleicht gar nicht?

00:30:13.416 --> 00:30:20.591
Also einfach ein anderer Audio-File zu dem einen zentralen Video-File dazu schalten?

00:30:20.969 --> 00:30:21.617
I don't know.

00:30:23.157 --> 00:30:28.639
Das find ich jetzt auch nicht, aber warte mal. Das crowdsourcen wir jetzt einfach mal.

00:30:30.197 --> 00:30:36.747
An unsere Hörerschaft, uns das zu sagen. Interessant, also so spontan find ich jetzt auch nicht direkt raus,

00:30:36.831 --> 00:30:38.749
wie das funktionieren würde.

00:30:39.118 --> 00:30:39.541
Mhm.

00:30:40.720 --> 00:30:49.947
Was ich ja doof finde, ist, dass man ein Audio-Element nicht mit einem WebVTT irgendwie,

00:30:49.947 --> 00:30:53.855
Das ist, also man kann das im Browser nicht darstellen.

00:30:54.980 --> 00:30:57.947
Also das geht nicht. Wenn du quasi ein transkribiertes Audio.

00:31:00.669 --> 00:31:08.947
On top von deinem Soundfile haben möchtest, dann hat der Browser da keine Möglichkeit, das anzuzeigen.

00:31:08.947 --> 00:31:15.424
Das heißt, du musst dein Audio dann in einem Videoelement abspielen und dann geht das.

00:31:15.947 --> 00:31:19.947
Ja, stimmt. Ich erinnere mich, dass ich mal recherchiert habe,

00:31:19.947 --> 00:31:22.947
welche HTML-Elemente definitionsgemäß unsichtbar sind und auch nicht sichtbar

00:31:22.947 --> 00:31:24.947
gemacht werden können. Audio war ja eins von den wenigen.

00:31:27.469 --> 00:31:32.947
Und dann ist ja auch so ein Use Case, das ist so Thumbnails,

00:31:32.947 --> 00:31:38.947
so Thumbnail-Previews anzuzeigen, wenn du, wenn du scrubst und also, dass du quasi schon mal

00:31:38.947 --> 00:31:41.947
sehen kannst, okay, so was passiert da in dem Video.

00:31:41.947 --> 00:31:47.994
Und das wird ja auch über so ein quasi quasi speziell formatiertes VTT abgewickelt.

00:31:48.624 --> 00:31:53.447
Mhm. Aber da hat sich irgendwie auch nie ein Standard für etabliert,

00:31:53.487 --> 00:31:55.187
was eigentlich auch schade ist.

00:31:55.247 --> 00:32:00.947
Weil das willst du eigentlich ja fast immer haben, wenn du Video abspielst, so du das kannst.

00:32:00.987 --> 00:32:05.405
Aber also, wenn jemand gefragt würde, möchtest du so was haben oder nicht,

00:32:05.972 --> 00:32:10.827
dann würde, glaub ich, die Mehrheit sagen, ja, bitte, Reviewsums, super.

00:32:11.733 --> 00:32:18.067
Wenn du jetzt fragen würdest, so hey, möchtest du gerne ein Video-Element haben,

00:32:18.067 --> 00:32:22.067
wo du Preview-Thumbnails dir anzeigen lassen kannst,

00:32:22.067 --> 00:32:26.947
quasi mit dem Cursor zum Beispiel über dem Scrubber bist.

00:32:28.828 --> 00:32:34.167
Oder sagen wir mal, wenn du sogar selber scrubst, weil in der Regel ist das Videonachladen ja nicht so schnell,

00:32:34.418 --> 00:32:38.518
und dann kannst du quasi schon mal zeigen, okay, das wär das Thumb an der Stelle,

00:32:38.558 --> 00:32:42.665
dann würden wahrscheinlich die meisten Leute sagen, ja, find ich gut, will ich haben. Mhm.

00:32:44.058 --> 00:32:48.518
Und das gibt's halt nicht. Also, es gibt ja hier dieses Kind-Attribut bei den Tracks,

00:32:48.558 --> 00:32:51.649
und dann gibt's Subtitles und Captions und was weiß ich was alles.

00:32:52.279 --> 00:32:57.678
Aber eben Thumbnails gibt es nicht. Und in der Regel machen das die Videoplayer aber alle,

00:32:57.678 --> 00:33:03.678
in dem du dann so ein Kind gleich Thumbnails übergibst, und dann ist das sozusagen ein unter der Hand Standard.

00:33:05.684 --> 00:33:11.178
Die zu verarbeiten oder einzulesen. Und dann hast du im Grunde einfach Zeitmarken drin

00:33:11.178 --> 00:33:16.178
und URLs zu diesen Bildern, zu den kleinen Thumbnails.

00:33:17.678 --> 00:33:23.678
Also der offizielle Weg, das zu machen, wäre ja, wenn ich's richtig verstehe, man nimmt als Kind Metadata,

00:33:25.048 --> 00:33:27.172
Und dann baut man da ein Skript obendrauf, das das macht.

00:33:29.297 --> 00:33:35.318
Würde wahrscheinlich auch gehen, ja. Wobei, kein Metadata, muss ich sagen, hab ich auch noch nicht.

00:33:35.877 --> 00:33:37.818
Also, ist mir noch nicht über den Weg gelaufen bisher.

00:33:38.308 --> 00:33:42.538
Ja, das sagt halt ja, dass das Metadata definitiv etwas ist,

00:33:42.538 --> 00:33:44.538
was im Browser nichts macht, definitionsgemäß.

00:33:44.907 --> 00:33:49.309
Aber so der offizielle Angriffsvektor ist für, ich will JavaScript mit einem Track verbinden.

00:33:50.434 --> 00:34:03.064
Mhm. Das ist die Idee. Das wäre ja sozusagen der richtige Weg von jetzt tatsächlich einem Thumbnail sehe ich jetzt in irgendwelchen Specs, nehme ich nix.

00:34:05.729 --> 00:34:13.079
Ja. Aber das Format ist halt dann, das halt so eine Ausprägung von VTT

00:34:13.079 --> 00:34:16.079
ist relativ einheitlich bei allen Playern.

00:34:16.079 --> 00:34:20.079
Also es ist jetzt nicht so, dass wenn du den JW-Player nimmst,

00:34:21.276 --> 00:34:27.667
der das ganz anders serviert braucht als der Playa-Player oder so, die sind sich da irgendwie alle einig.

00:34:28.108 --> 00:34:34.860
Nee, das ist ja auch ein ordentlicher Standard, das WebVTT. Nee, aber die WebVTT-Ausprägung für die Thumbnails.

00:34:35.400 --> 00:34:36.571
Mhm. Zum Beispiel.

00:34:37.543 --> 00:34:42.239
Okay. Also, das ist dann ... Hm. Und warum machen die es nicht richtig?

00:34:42.279 --> 00:34:43.331
Das ist ja sehr originell.

00:34:44.664 --> 00:34:47.896
Ja, ich meine, ich denke halt auch so, im Sinne von Paving the Cove Path,

00:34:48.199 --> 00:34:54.836
müssten die ja eigentlich mal hingehen und dann dafür dedizierten Track-Element irgendwie noch spezifizieren.

00:34:55.340 --> 00:34:59.519
Genau, weil ich wette, dass die Player, du hast gesagt, die machen's relativ einheitlich,

00:34:59.833 --> 00:35:00.553
ich wette, sie machen's nicht einheitlich.

00:35:01.719 --> 00:35:06.419
Sodass man da wahrscheinlich schon ein präemptives Nootools-Pullen diagnostizieren könnte.

00:35:06.459 --> 00:35:08.259
Wir machen das schon einheitlich.

00:35:08.925 --> 00:35:14.719
Machen die es einheitlich, einheitlich? Also, dass du jetzt sagen würdest, du, Shep, stehst mit deinem Namen dafür,

00:35:14.759 --> 00:35:18.098
dass man das, was die jetzt machen, eins zu eins in die Specs gießen könnte,

00:35:19.115 --> 00:35:20.719
und das funktioniert überall einheitlich.

00:35:20.759 --> 00:35:25.799
Ja, vielleicht gibt's irgendeinen, hast du nicht gesehen, PlayerJS, der das irgendwie anders macht.

00:35:26.056 --> 00:35:33.159
Aber was ich so bisher, dem ich begegnet bin, Da musst du keine Anpassungen an diesen Dateien vornehmen.

00:35:33.780 --> 00:35:37.228
Du kannst den Player wechseln, und das funktioniert dann weiter. Mhm.

00:35:37.993 --> 00:35:41.759
Trotzdem riskant, nicht den offiziellen Weg zu gehen, wenn's einen gibt.

00:35:41.819 --> 00:35:45.559
Weil wenn das offiziell zu einem Kind erhoben wird, nämlich Thumbnail,

00:35:46.662 --> 00:35:49.723
und da sind wirklich kleine Abweichungen drin, dann wird's spannend. Mhm.

00:35:51.064 --> 00:35:54.521
Dann ist das ein Mutuals-Problem, aber auf HTML-Ebene, das wäre ja mal was Neues.

00:35:54.779 --> 00:35:56.466
Ja. Brauchen wir auch mal.

00:35:56.979 --> 00:35:59.464
Haben wir ja für JavaScript gehabt, haben wir jetzt für CSS gehabt.

00:36:00.643 --> 00:36:06.659
Ja. Auch immer noch für HTML. Also deswegen, wenn ihr eine Library schreibt und euch irgendwie die Möglichkeit besteht,

00:36:06.659 --> 00:36:10.482
einen offiziellen Weg zu beschreiten, um eure Metadaten unterzubringen,

00:36:10.860 --> 00:36:14.659
Data-Attribute, Custom-Elements, irgendwie was, was irgendwie so der offizielle Weg ist,

00:36:14.659 --> 00:36:17.576
wo die Spezifikationen euch garantieren,

00:36:18.035 --> 00:36:20.659
in diesen Namespace-Creation wir definitiv später nicht rein,

00:36:20.659 --> 00:36:24.659
dann nehmt den, weil sonst habt ihr möglicherweise mit eurer Library Erfolg

00:36:24.958 --> 00:36:27.749
Und dann kommen irgendwelche Spezifikationsänderungen und dann seid ihr im Mootools.

00:36:28.811 --> 00:36:32.250
Was ja auch irgendwie cool ist, auf eine gewisse Art und Weise.

00:36:32.646 --> 00:36:35.013
Man ist auf jeden Fall dann legendär.

00:36:35.094 --> 00:36:38.065
Und das ist ja sicherlich nicht... nichts.

00:36:38.524 --> 00:36:45.420
Mhm. So, dann hier, MathML, nie benutzt. Du?

00:36:46.032 --> 00:36:47.220
Äh, nein, der geht nicht.

00:36:49.741 --> 00:36:57.942
Alles was ich in mathe kann habe ich irgendwie mir als autodidakt angearbeitet angelehrt und deswegen kann ich da diese ganzen die ganzen formelkram auch nicht lesen.

00:36:58.500 --> 00:37:06.296
Schweige dann schreiben andererseits ist es ja schon so ich meine das ist das im web nicht gibt es schon ein bisschen arm weil.

00:37:07.404 --> 00:37:08.961
Ist halt ein etablierter standard.

00:37:10.996 --> 00:37:17.909
Ja, ich glaube, ja, es ist auf jeden Fall, ich glaube, die meisten Browser können es und Chrome hängt da hinterher, oder? Wie ist das?

00:37:18.072 --> 00:37:22.248
Ich sehe gerade, mittlerweile sieht die offizielle Kompatibilitätstabelle einigermaßen gut aus.

00:37:23.932 --> 00:37:35.914
Ja, das ist ja auch so ein crowdgefundetes oder co-gefundetes Projekt gewesen, also auf OpenCollective und umgesetzt oder implementiert hat es dann

00:37:36.238 --> 00:37:41.324
wieder hier Egalia, was ja sozusagen sowas wie Söldner,

00:37:41.882 --> 00:37:44.268
für Browser-Feature implementierend sind.

00:37:46.474 --> 00:37:56.372
Das heißt, wenn ihr in einer großen Firma arbeitet und immer schon fandet, dass irgendein Standard wie zum Beispiel die HTML-Imports

00:37:56.700 --> 00:37:59.419
endlich mal in Browsern implementiert sein sollten,

00:37:59.491 --> 00:38:01.972
dann könntet ihr da anrufen bei denen,

00:38:02.308 --> 00:38:04.676
den Geld hinlegen und dann würden die das,

00:38:05.504 --> 00:38:08.972
in die Engines einbauen, so ihr denn wolltet.

00:38:08.972 --> 00:38:16.802
Aber dann sieht es doch in der Kompatibilitätstabelle eher gut aus.

00:38:17.108 --> 00:38:20.972
Die Häkchen in der Kompatibilitätstabelle bei Firefox haben einstellige Versionsnummern.

00:38:22.356 --> 00:38:25.516
Mh, hab ich gesehen, ja, Version 4 war das, ne? Jo.

00:38:27.073 --> 00:38:33.747
Genau, das Einzige, was mir sonst noch einfällt dazu, ist, dass ja der Browser bei so Sachen wie SVG und MathML,

00:38:33.915 --> 00:38:37.921
ähm, dass er dann sozusagen die Engine wechselt.

00:38:38.487 --> 00:38:44.367
Also, wie er Sachen parst. Und dass ja auch immer gern genutzte Einfallstore sind,

00:38:44.407 --> 00:38:47.707
um, äh, Cross-Site-Scripting-Krempel

00:38:48.067 --> 00:38:52.587
in den Browser zu bringen, Indem man eben sozusagen auf SVG wechselt,

00:38:52.627 --> 00:38:58.127
dann irgendwas reinsteckt, was im Grunde in HTML kein Problem wäre,

00:38:58.167 --> 00:38:59.545
aber in SVG dann doch.

00:39:00.193 --> 00:39:05.247
Und vielleicht gibt's das auch für MathML oder auch nicht. I don't know.

00:39:05.287 --> 00:39:08.627
Ich würd annehmen, dass das ein bisschen weniger dramatisch ist.

00:39:08.667 --> 00:39:10.402
Also SVG ist ja im Prinzip alles.

00:39:10.780 --> 00:39:17.127
Also, das inkludiert ja CSS und Scripting und alles. Und ich glaub, MathML ist da deutlich, sagen wir mal,

00:39:17.127 --> 00:39:19.242
mal restrainter, was das Feature-Set angeht.

00:39:19.872 --> 00:39:24.827
Und ich meine, was ist die Alternative? Die Alternative ist, du holst dir sieben Megabyte JavaScript

00:39:24.867 --> 00:39:25.687
und drennst das auf ein Canvas.

00:39:26.567 --> 00:39:29.306
Ist jetzt auch nicht automatisch supersicher. Nee.

00:39:31.458 --> 00:39:38.927
Genau, es gibt übrigens einen schönen SVG-Angriff, weil du hast ja das Animate-Element in SVG.

00:39:38.967 --> 00:39:41.927
Und das animiert aber ein Parent.

00:39:42.495 --> 00:39:50.048
Mhm. Und da kannst du quasi dann animieren von On-Click harmlos zu On-Click nicht mehr harmlos.

00:39:50.155 --> 00:39:55.967
Und weil das On-Click aber ja nicht, also das ursprüngliche On-Click ja harmlos ist,

00:39:55.967 --> 00:40:00.859
wird es dann in der Regel durchgelassen und dieses Animate-Ding, das hat irgendwie dann keiner auf dem Schirm.

00:40:01.390 --> 00:40:01.967
Hmm.

00:40:03.929 --> 00:40:08.779
SVG ist echt, also von Hand SVG schreiben ist schon ein Sport.

00:40:08.779 --> 00:40:11.329
Habe ich mal vor einiger Zeit probiert.

00:40:11.923 --> 00:40:12.220
Mhm.

00:40:13.066 --> 00:40:17.779
Also ist sehr anders und sehr schwierig. Und am Ende sind Webbrowser die einzigen,

00:40:17.779 --> 00:40:19.359
die das irgendwie dann ordentlich darstellen.

00:40:19.791 --> 00:40:22.753
Mhm. Weil sämtliche Imageviewer und so kann man komplett in die Tonne treten.

00:40:24.779 --> 00:40:29.585
Äh, mach ne Webseite mit HTML und CSS. Das ist auch quasi... Das ist besser.

00:40:30.441 --> 00:40:36.779
Genau, dann Focus-Group-Attribut haben wir als nächstes. Das finde ich, glaube ich, gar nicht schlecht.

00:40:36.779 --> 00:40:42.779
Da geht es quasi darum, dass du sagen kannst, hier in diesem Element, das ich damit auszeichne,

00:40:42.779 --> 00:40:51.380
da soll es möglich sein, mit Cursor-Tasten den Fokus zu wechseln zwischen den unteren Elementen.

00:40:52.100 --> 00:40:56.367
Das gab es auch mal als Directional Navigation. Ich glaube, der Operator das sogar unterstützt,

00:40:57.205 --> 00:41:05.172
Weil der ja auch auf so Fernsehern und Nintendos drauf war und die ja in der Regel nur so Richtungstasten hatten.

00:41:06.225 --> 00:41:10.465
Und da konntest du dann eben auch mit den Richtungstasten navigieren.

00:41:10.779 --> 00:41:16.640
Genau, find ich ganz gut. Und hast du ja auch manchmal bei so was wie Selects oder so,

00:41:16.779 --> 00:41:18.441
da kannst du ja auch mit ...

00:41:19.035 --> 00:41:24.436
Da musst du ja dann nicht die Option Ant haben, sondern da kannst du ja dann deinen Cursor verwenden.

00:41:25.498 --> 00:41:30.108
Genau. Ja, ist nett. Müsste mal jemand spezifizieren, ne? Mhm.

00:41:31.053 --> 00:41:36.849
Ist in Chrome bereits drin, so hinter dem Fleck? Wird also schön ausprobiert. Ist auch so im Origin-Trial.

00:41:37.057 --> 00:41:38.534
Was ist die aktuelle Chrome-Version?

00:41:39.560 --> 00:41:43.849
Ich hab keine Ahnung. Bei mir steht nur aktualisieren. Da steht aber mal...

00:41:43.849 --> 00:41:47.049
Ich benutze ja Firefox neuerdings, deswegen weiß ich das gar nicht.

00:41:47.049 --> 00:41:49.049
Warte mal, hier, Hilfe-Seite.

00:41:49.958 --> 00:41:54.747
Herrschte da nicht früher immer drin, was das für eine Chrome-Version ist? Äh, doch schon.

00:41:55.710 --> 00:42:01.534
Oder über oder sowas. Über Chrome. Da genau. Chrome Version 116 habe ich hier.

00:42:02.749 --> 00:42:06.749
Und das ist im Origin-Trial auch schon ewig lange drin. Also ja, wie immer.

00:42:06.749 --> 00:42:10.749
Ein Feature, das kommt. Das mehr oder weniger unilateral ausgerollt wird.

00:42:10.933 --> 00:42:14.615
Jawoll. Web-Entwickler sagen positives Signal. Safari und Firefox sagen gar nichts.

00:42:14.759 --> 00:42:18.749
Es gibt keine Spezifikationen, aber der neue Internet Explorer baut es schon mal ein. Na gut.

00:42:19.188 --> 00:42:26.615
Mhm. Das ist ja auch wieder hier Teil von von der Open-UI-Truppe. Könnte ja auch sein.

00:42:27.281 --> 00:42:30.749
Genau, auch von der Open-UI-Truppe ist dieses Exclusive-Accordion.

00:42:30.749 --> 00:42:36.749
Da hatten die ja auch letztens eine Umfrage gemacht, wie sollte das funktionieren?

00:42:36.749 --> 00:42:42.207
Also, was das machen soll, ist, du hast Details-Elemente,

00:42:42.749 --> 00:42:50.749
Details-Elemente, und deren ursprüngliche Idee war, gib denen ein Name-Attribut, und dann,

00:42:50.749 --> 00:42:57.655
Wenn das Name-Attribut da ist und das auf mehreren Details-Elementen ist mit dem gleichen Namen,

00:42:57.862 --> 00:43:05.749
dann ist das sozusagen das Signal für den Browser, dass die exklusiv sind.

00:43:05.749 --> 00:43:07.962
Und das bedeutet wiederum, du kannst immer nur eins von denen öffnen.

00:43:08.749 --> 00:43:11.131
Anderen sollen dann sich.

00:43:13.994 --> 00:43:19.304
Oder sagen wir mal, eins kann am Anfang offen sein, und was dann passiert, ist dann Teil der Umfrage gewesen.

00:43:19.304 --> 00:43:23.833
Also sollen dann, soll das Geöffnete sich schließen, wenn du ein anderes öffnest?

00:43:24.104 --> 00:43:27.966
Soll das eins schon Geöffnetes aufbleiben, wenn du ein anderes öffnest?

00:43:28.118 --> 00:43:32.602
Und überhaupt, ist das sinnvoll, das mit Name zu machen oder nicht?

00:43:33.124 --> 00:43:41.364
Und am Ende stellt sich aber, und genau, und was ist denn, wenn der HTML-Autor die gruppiert,

00:43:41.364 --> 00:43:45.544
aber dann mehr als eins zu Beginn als mit dem Open Attribut versieht.

00:43:45.544 --> 00:43:49.247
Also was soll der Browser dann machen? Soll er dann irgendwie das Letzte öffnen?

00:43:49.355 --> 00:43:55.644
Wie das bei Checkbox der Fall ist, oder soll er das Erste öffnen,

00:43:55.644 --> 00:43:57.824
wie das vielleicht bei Autofokus der Fall ist?

00:43:57.824 --> 00:44:04.379
Und am Ende stellt sich heraus, dass das ein ganz schön schwieriges Problem ist.

00:44:05.694 --> 00:44:10.244
Okay, interessant. Ich hätte nämlich jetzt erwartet, dass die Entstehungsgeschichte einfach so ist.

00:44:10.573 --> 00:44:18.044
Da sitzen so zwei irgendwie so leute zusammen einer zieht am joint und sagt dann so wie wir hier was was wäre,

00:44:18.756 --> 00:44:25.404
ja quasi und fragt dann so was wäre wenn wir wenn wir radio buttons hätten aber sie werden details

00:44:25.404 --> 00:44:38.044
elemente das ist doch ein exklusives accordion oder ja im grunde ja und das verwendet ja auch

00:44:38.318 --> 00:44:40.044
tatsächlich dat Name-Attribut.

00:44:40.044 --> 00:44:41.514
Ja.

00:44:42.612 --> 00:44:46.044
Warum gehst du nicht hin und sagst irgendwie radio buttons copy paste

00:44:46.186 --> 00:44:48.044
und dann tauscht der Input gegen Details aus?

00:44:50.228 --> 00:44:54.044
Ne, ich glaube das wäre ja auch das, was sie gerne gemacht hätten.

00:44:54.216 --> 00:44:58.044
Aber warum ist das dann so haarig, wenn man doch einfach sagen könnte, wir nehmen das so wie es schon ist und

00:44:58.044 --> 00:45:00.044
funktioniert und ja, das hat irgendwelche Trade-offs,

00:45:00.044 --> 00:45:04.044
aber zumindest sind die Web-Entwicklerinnen und Entwickler daran gewöhnt. Und man kann

00:45:04.044 --> 00:45:08.044
ihnen einfach sagen, hey, dieses neue was du da hast, oder dieses neue Feature, was du da hast,

00:45:08.044 --> 00:45:10.015
das ist wie Radio Buttons, nur halt mit Details-Element.

00:45:10.294 --> 00:45:15.044
Ja, okay. Kann man machen. Dann gibt's jetzt ein paar Fragen.

00:45:15.417 --> 00:45:22.644
Was wäre, wenn du oben in deinem HTML-Dokument HTML-Dokument ein offenes Details-Element mit einem Namen hast.

00:45:23.852 --> 00:45:30.991
Dann kommt ganz, ganz viel HTML und am Ende kommt noch mal ein Details-Element mit dem gleichen Namen, das auch ein Open Attribut hat. Was machst du dann?

00:45:31.368 --> 00:45:33.565
Das gleiche wie Radio Buttons. Das heißt?

00:45:34.195 --> 00:45:36.473
Weiß nicht, aber ich würde das nehmen, was Radio Buttons machen.

00:45:37.265 --> 00:45:40.425
Genau, das heißt, das erste würde dann geschlossen werden wieder.

00:45:41.541 --> 00:45:47.060
Das würde der Browser aber erst merken, nachdem er vielleicht ein paar Sekunden lange HTML übertragen bekommen hat.

00:45:47.410 --> 00:45:50.895
Wenn das das ist, was Radio Buttons machen, ist das, was die Webentwicklerinnen und Entwickler erwarten.

00:45:51.831 --> 00:45:59.132
Aber dein initialer Viewport ist halt eben oben, ne? Das heißt, auf einmal kollabiert dann das offene Details-Element,

00:46:00.104 --> 00:46:01.904
und ist dann wieder geschlossen.

00:46:02.138 --> 00:46:08.241
Das kriegst du doch genauso hin, wenn du irgendwie Input, Type, Radio oder was das ist, hast,

00:46:08.301 --> 00:46:12.392
plus irgendwas anderes, und dann machst du da auch eine Check-Pseudoklasse rein.

00:46:12.851 --> 00:46:18.001
Je nachdem, was Phase ist, wird was angezeigt oder nicht. Aber, Peter, das soll man doch nicht machen.

00:46:18.061 --> 00:46:22.348
Und das macht auch keiner. die da irgendeine Demo bauen, die komplett ohne Javascript irgendwas macht.

00:46:22.646 --> 00:46:25.441
Aber wenn das das Argument ist, dann würde ich ja genauso gut sagen,

00:46:25.441 --> 00:46:28.441
was auch niemand macht, ist ein Details-Element mit einem Open Attribut,

00:46:28.441 --> 00:46:32.170
sieben Gigabyte HTML und ein weiteres Details-Element mit einem Open Attribut.

00:46:32.485 --> 00:46:35.042
Okay, dann habe ich jetzt den nächsten Use-Case für dich.

00:46:35.441 --> 00:46:43.864
Bring it on! Du hast ein Details-Element mit, keine Ahnung, Name Peter, das ist offen.

00:46:44.872 --> 00:46:51.075
Und in diesem Details-Element hast du ein Details-Element mit Namen Peter, das ist auch offen. Was machst du jetzt?

00:46:51.481 --> 00:46:52.596
Das ist eine sehr gute Idee.

00:46:53.505 --> 00:46:59.441
Äh ... Siehst du? Ja, nun ... Es ist ja nicht alles Blödsinn, was an Fragen aufgeworfen wird.

00:46:59.481 --> 00:47:04.281
Und das ist tatsächlich ein sehr gutes Argument, weil das gibt's ja mit dem Radio-Button nicht.

00:47:04.481 --> 00:47:08.269
Man kann ja nicht Radio-Buttons in Radio-Buttons machen. Genau. Ja.

00:47:08.935 --> 00:47:12.521
Äh, ja. Dadurch, wenn du quasi nur das letzte Auftreten öffnest,

00:47:12.561 --> 00:47:16.542
müsstest du ja dann das Eltern-Details-Element wieder schließen. Mhm.

00:47:17.064 --> 00:47:21.691
Und dann wär gar keins mehr offen, weil das Offene ja in dem geschlossenen Details-Element drin steckt.

00:47:22.574 --> 00:47:23.024
Ja, das stimmt.

00:47:24.428 --> 00:47:30.189
Ja, das klingt gut, Kram-Kram im Kopf, keine Ahnung, aber da kann man doch bestimmt ne Lösung finden.

00:47:30.433 --> 00:47:34.538
Also, es gibt ja so viele Sachen, wo wirklich so Dinge sind,

00:47:34.538 --> 00:47:40.227
also, da könnte man theoretisch irgendwie entscheiden, dass z.B. jedes Detailselement dann wiederum ein neuer Scope ist.

00:47:40.479 --> 00:47:45.338
Es handelt sich ja nicht um Formularfelder, d.h. das Name-Element kann mit neuer Semantik aufgeladen werden

00:47:45.338 --> 00:47:50.338
und man könnte halt eben für diesen Verschachtelungs-Edge-Case einfach sagen, jedes Detailselement ist ein eigener Scope.

00:47:50.338 --> 00:47:53.433
Also kann ich halt irgendwie ne Foo-Gruppe, inner Foo-Gruppe, inner Foo-Gruppe haben.

00:47:53.703 --> 00:47:54.864
Wäre jetzt meine erste Idee.

00:47:56.413 --> 00:48:00.638
Ja, genau. Aber du musst halt ... Du musst eben was am Parser ändern.

00:48:00.698 --> 00:48:03.238
Also, du kannst nicht die ...

00:48:03.298 --> 00:48:07.531
Sagen wir mal, einfach nur den Code nehmen, den du für Checkboxen benutzt,

00:48:08.116 --> 00:48:11.195
und den da eben anwenden oder nutzen für.

00:48:11.645 --> 00:48:15.298
Nee, den Code definitiv nicht. Definitiv muss der Parser geändert werden.

00:48:15.358 --> 00:48:21.238
Aber die Leitlinien für HTML-Design sagen ja, die Prioritäten sind erst die User, dann die Developer,

00:48:21.457 --> 00:48:23.474
dann die Spezifikateure, dann die Theorien.

00:48:23.780 --> 00:48:27.309
Ja, also ich denke auch, dass der Parser geändert werden muss.

00:48:28.200 --> 00:48:30.685
Also da führt kein Weg drumherum, wenn man das Feature haben möchte.

00:48:31.261 --> 00:48:33.278
Ich glaube, ich würde das Ganze ...

00:48:33.318 --> 00:48:37.578
Ich würde eher so was wie ein Details-Group-Element ...

00:48:37.725 --> 00:48:41.878
Also das fände ich, glaub ich, besser, anstatt überall den Name draufzuklatschen.

00:48:41.918 --> 00:48:44.878
Sondern es ist einfach klar, es gibt die Details-Group.

00:48:45.079 --> 00:48:50.078
Und so wie unter T-Body eben nur TRs eingehängt werden dürfen,

00:48:50.490 --> 00:48:54.578
darf als Kind von einem Details-Group-Element nur ein Details-Element sein.

00:48:54.946 --> 00:48:58.658
Und ... Warte mal, das Spielchen können wir noch andersrum spielen.

00:48:58.698 --> 00:49:00.788
Was ist, wenn ich eine Tabelle reinschreibe?

00:49:01.779 --> 00:49:10.058
Hm, na ja, dann müsste der Parser eben das verwerfen. Oder er müsste die Tabelle dann, wie es ja auch häufig der Fall ist,

00:49:10.098 --> 00:49:14.558
quasi erst mal im Speicher behalten und nach dem Schließen des Details-Group-Elements

00:49:14.598 --> 00:49:15.930
dann ins DOM einfügen.

00:49:16.254 --> 00:49:17.558
Das hast du ja auch bei ...

00:49:18.388 --> 00:49:24.558
Wenn du so verkorkstes HTML schippst, wo Dinge ineinander verschachtelt sind, die nicht sein können, dann macht er das ja auch so.

00:49:25.940 --> 00:49:29.406
Okay, na gut, es ist auch relativ einfach, weil du da ja nicht mit,

00:49:29.947 --> 00:49:32.590
sagen wir mal, bestehendem HTML dich kompatibel halten musst,

00:49:32.590 --> 00:49:34.990
sondern du kannst ja tatsächlich neue Regeln erfinden in dem Fall.

00:49:35.096 --> 00:49:39.590
Klingt mir auch wirklich wie die bessere Variante, plus, also ich stelle mir sicherlich vor, das ist eine super Idee,

00:49:39.590 --> 00:49:41.910
das Details-Element, da bin ich ja sowieso ein extrem großer Fan von,

00:49:41.910 --> 00:49:44.368
weil null JavaScript, ein Club-Widget, wunderbar. Ja.

00:49:45.310 --> 00:49:48.518
Und Details-Group wäre sozusagen einfach die logische Evolution davon,

00:49:48.599 --> 00:49:54.082
plus, was man ja machen könnte, wäre zu sagen, Man kann dieses Details-Group-Element ja komplett

00:49:54.415 --> 00:49:55.621
un-customizable machen.

00:49:56.026 --> 00:49:59.270
Man könnte ja wirklich sagen, das Details-Group macht halt wirklich nichts als das.

00:49:59.270 --> 00:50:01.870
Es hat keine Attribute, das hat keine JavaScript-API, kein nix.

00:50:01.870 --> 00:50:04.070
Und wenn man sein Attribut irgendwie fancy animieren möchte,

00:50:04.070 --> 00:50:10.770
dann baut man halt eben sein eigenes Details-Group-Ding da drumherum und baut ein Custom-Element dafür.

00:50:10.770 --> 00:50:14.958
Und das wäre dann sozusagen die Accordion-Plugin-API. Das gefällt mir eigentlich auch sehr gut.

00:50:15.354 --> 00:50:26.310
Mhm. Ja. Und genau, ansonsten wär ich eben auch dafür, eben eher das erste offene Details-Element zu rendern

00:50:26.370 --> 00:50:27.687
und es dabei zu belassen.

00:50:27.930 --> 00:50:32.467
Einfach weil du sonst halt riesen Layout-Shifts hast und das auch von ...

00:50:32.690 --> 00:50:37.030
Also so, äh, auch von der User-Experience halt scheiße ist, ne?

00:50:37.148 --> 00:50:39.870
Also, das fällt ja so in diese gleiche Kategorie rein.

00:50:39.930 --> 00:50:43.270
Also, nicht nur, dass der Browser dadurch doppelte Arbeit hat,

00:50:43.330 --> 00:50:49.450
weil er irgendwann später merkt, alles irgendwie Relay-outen, sondern du hast eben auch.

00:50:50.410 --> 00:50:55.747
So wie bei Core Web Vitals, wenn du einen hohen CLS-Wert hast, ist das halt doof.

00:50:57.304 --> 00:51:01.698
Und in die Kategorie fällt das ja letztlich auch, wenn du ein Details-Element hast, das erst mal da ist,

00:51:01.950 --> 00:51:05.610
und dann hast du da Content drin, und du willst das vielleicht klicken,

00:51:05.650 --> 00:51:09.450
und in dem Moment geht das Ding dann zu, und du siehst was ganz anderes.

00:51:09.629 --> 00:51:11.753
So, wer will das?

00:51:12.680 --> 00:51:17.950
Du kannst ja, ob's angezeigt werden soll oder nicht, erst entscheiden, wenn du durch bist.

00:51:18.946 --> 00:51:19.243
Ja, genau.

00:51:22.088 --> 00:51:27.950
Naja, mal sehen, wo die damit hinkommen. Ich glaube, es war auf jeden Fall gut,

00:51:27.950 --> 00:51:33.746
dass sie diese Umfrage gemacht haben, weil eben dieses ganze Feedback kam und sich herausstellt,

00:51:33.950 --> 00:51:36.950
dass das Ganze eben doch ein bisschen komplizierter ist.

00:51:36.950 --> 00:51:43.950
Ja, also wir haben den Pull-Request für dieses Name-Attribut tatsächlich auch in den Shownotes verlinkt.

00:51:44.908 --> 00:51:47.950
Dass man sich wirklich mal die ganze Debatte reinziehen kann,

00:51:48.086 --> 00:51:49.500
wenn ihr das möchtet.

00:51:50.706 --> 00:51:55.950
Cool. Genau, dann haben wir hier Model. Hast du davon schon gehört?

00:51:55.950 --> 00:52:01.950
Von dem Model-Element? Äh, warte, warte, warte, warte. Äh, nee, hab ich tatsächlich noch nicht.

00:52:01.950 --> 00:52:03.950
Das ist dieses 3D-Zeug.

00:52:06.037 --> 00:52:08.950
Genau, das ist jetzt ganz neu und gibt's, glaube ich, nur in Safari.

00:52:08.950 --> 00:52:15.150
Moment Chef wir müssen wir müssen wieder wir müssen wirklich mit mit mit Existenz das müssen wir glaube ich ein bisschen genauer noch abgrenzen.

00:52:15.237 --> 00:52:18.415
Ja, okay, es wird, wie soll man es ausdrücken?

00:52:20.377 --> 00:52:26.048
Existenzstufe Draft Community Group Report. Also, das ist mehr als jetzt bei hier.

00:52:26.108 --> 00:52:27.561
Was war das, bei Focus Group?

00:52:27.748 --> 00:52:28.849
Vielleicht auch Brain Fart.

00:52:29.308 --> 00:52:34.448
Möglicherweise. Ich weiß es nicht. Möglicherweise. Erzähl, wieso ist das ein Brain Fart?

00:52:34.508 --> 00:52:42.082
Also, bei Safari ist es ja häufig so gewesen, dass was die an Features einführen,

00:52:42.388 --> 00:52:45.296
im Prinzip von Wünsche anderer Abteilungen sind.

00:52:45.809 --> 00:52:53.695
Mhm. Und das ist bei dem Model-Element eben auch so. Und zwar kommt das von der Vision-Pro-Geschichte.

00:52:54.343 --> 00:52:57.988
Dass du quasi im Browser 3D darstellen kannst.

00:52:57.988 --> 00:53:04.988
Und ich meine, dass es eben bei diesem Model-Element so ist,

00:53:04.988 --> 00:53:14.988
dass du in Prinzip komplette Kontrolle abgibst an das Vision-Pro, wie, was, wo möglich ist darin und was nicht.

00:53:15.210 --> 00:53:21.688
Und das hat wiederum dann auch seinen Ursprung darin, dass du, glaube ich, eben aus Privacy-Gründen,

00:53:21.917 --> 00:53:26.188
also da achtet ja Apple stark drauf, und deswegen sollst du eben nicht mitbekommen,

00:53:26.188 --> 00:53:31.488
wohin Leute gucken, eben 3D-Raum und all so Zeugs.

00:53:31.488 --> 00:53:35.688
Das ist so die gleiche Geschichte, wie als sie damals angefangen haben,

00:53:35.688 --> 00:53:41.488
so CSS-Transformationen und Zeug einzuführen, weil sie auch so im Prinzip ihre Software supporten wollten,

00:53:41.488 --> 00:53:44.549
IT-User und Konsorten waren das doch. Ja, oder auch diese Spiegelung.

00:53:44.900 --> 00:54:05.056
Das das ist ja auch was das können die webkit oder die browser mit webkit ursprung aber das auch kein standard das kommt dann so aus aus deren hier apple books oder wie das heißt und itunes natürlich cover flow so die geschichten.

00:54:06.604 --> 00:54:11.627
Da gibt's noch einiges mehr, gerade im CSS-Bereich. Ja.

00:54:12.258 --> 00:54:14.832
Ja, ich find's ansonsten, weiß ich nicht...

00:54:16.858 --> 00:54:20.918
Von mir aus, wenn die das machen, werd ich's jemals benutzen, wahrscheinlich nicht.

00:54:21.954 --> 00:54:24.454
Ja, es ist halt so eine Sache auch...

00:54:27.021 --> 00:54:30.954
Also, kannst du mir den Use Case noch mal erklären? Ich hab das, glaub ich, nicht ganz verstanden,

00:54:30.954 --> 00:54:32.333
wofür ich das Model-Element haben möchte.

00:54:32.999 --> 00:54:41.002
Es ist eigentlich so was wie eine WebGL-Canvas oder eine, was benutzt man mittlerweile, WebGPU-Canvas,

00:54:41.506 --> 00:54:51.054
nur in Markup-Form und dann eben mit der Möglichkeit, das abzuschotten vom Zugriff, sodass man nur sagt,

00:54:51.054 --> 00:54:55.739
hier, Browser, hier ist ein 3D-Raum für die Vision Pro.

00:54:56.288 --> 00:55:00.969
Ihr seid dran, ich kann jetzt eh nix mehr machen. Canvas plus ein Soundrummer rum.

00:55:01.527 --> 00:55:08.324
Genau. Genau, noch gibt's ja die Vision Pro nicht. Ich glaub, die ist ja noch nicht ausgeliefert.

00:55:08.554 --> 00:55:15.054
Die ist ja nur vorgestellt. Und vielleicht liest man ja irgendwann mal Making-ofs

00:55:15.054 --> 00:55:21.485
und irgendwie Blogposts über dieses Model-Element und was die Leute damit so fabriziert haben.

00:55:22.169 --> 00:55:24.321
Ja, Moment, ich muss noch ein bisschen...

00:55:25.185 --> 00:55:27.554
Mal kurz eben gucken, dass ich das gepast kriege.

00:55:29.623 --> 00:55:34.554
Das hat ja im Prinzip den Anstrich von einem Media-Element. Oh Gott, die Spezifikationen bestehen nur aus Überschriften,

00:55:34.554 --> 00:55:36.087
wo nichts angegeben ist.

00:55:36.861 --> 00:55:40.554
Es gibt ein Cross-Origin-Attribut. Was macht es? Nix. Es gibt ein Controls-Attribut.

00:55:40.554 --> 00:55:41.554
Was macht es? Steht da nicht.

00:55:42.109 --> 00:55:45.494
Es gibt ein Loading-Attribut. Ist halt ein Verweis auf ein offenes Issue offen.

00:55:45.926 --> 00:55:52.554
Das ist es auch. Ich meine in den Safari oder WebKit, aber wahrscheinlich eher Safari-Release-Notes,

00:55:52.554 --> 00:55:55.554
hatte ich da mal was drüber gelesen.

00:55:56.594 --> 00:56:03.202
Ja, aber da sind wir wieder in der Evolutionsstufe der Existenz 1 zurückgegangen, im Vergleich zu den Specs. Mhm. Hm.

00:56:04.030 --> 00:56:09.287
Shep, was ist deine allgemeine Meinung zu dem ganzen Virtual Reality 3D-Brillenkram?

00:56:10.259 --> 00:56:17.554
Hmm. Also ich hab ja früher 3D gemacht und ich hab auch stereoskopisches 3D gemacht und was weiß ich was alles.

00:56:17.554 --> 00:56:21.044
Ich glaube, das sind so Non-Starter-less.

00:56:21.554 --> 00:56:34.061
Also ich glaube, dass die das mit der Vision Pro cool gemacht haben und dennoch wird diese Vision Pro nach ein paar Wochen irgendwo in der Ecke liegen und man wird die nicht benutzen.

00:56:34.781 --> 00:56:38.211
Und das würdest du auch auf andere 3D-Brillen ausdehnen?

00:56:39.121 --> 00:56:42.514
Jaja, auf jeden Fall. Ich meine, die Vision Pro ist ja noch so die, also die ist ja wirklich,

00:56:42.514 --> 00:56:50.114
also ich würde schon sagen, dass die deutlich besser ist als das alles, was es gibt. Also

00:56:50.114 --> 00:56:55.494
Also ich habe auch mal mit dem hier mit der HoloLens, die durfte ich auch mal ausprobieren,

00:56:55.494 --> 00:56:56.441
auch richtig geil.

00:56:57.746 --> 00:57:02.396
Ist sicherlich mal hilfreich, in bestimmten Szenarien auf so was zu greifen zu können,

00:57:02.436 --> 00:57:05.894
aber in der breiten Masse seh ich das nicht.

00:57:06.596 --> 00:57:10.396
Ich finde, man sieht das ja auch bei den Konsolen mit ihren Brillen und ihren Spielen.

00:57:10.436 --> 00:57:14.617
Also, es sind schon viele, die sich das holen und die mal so ein Spiel damit spielen,

00:57:15.472 --> 00:57:18.794
und die auch das irgendwie okay finden oder gut finden.

00:57:19.406 --> 00:57:25.596
Aber es ist jetzt nicht so, dass die dann total am Suchten sind und so zu mir kommen und sagen,

00:57:26.176 --> 00:57:29.263
Also, Spiele auf normalen Fernsehern sind Dreck.

00:57:29.624 --> 00:57:33.836
Ich möchte jetzt nur noch ... Also, die Virtual-Reality-Dystopie des 80er-Jahre-Films

00:57:33.876 --> 00:57:35.331
manifestiert sich nicht so wirklich.

00:57:35.952 --> 00:57:41.096
Nee. Dass man da in die Welt reingezogen wird. Genau, und man liest halt immer wieder so,

00:57:41.136 --> 00:57:45.909
dass es ja eigentlich im Prinzip nur daran liegt, dass die Technik noch nicht gut genug ist.

00:57:46.125 --> 00:57:52.096
Also, das ist ja so der Dauerbrenner. Dass es im Grunde nur an der Raffinesse der Technologie liegt.

00:57:52.096 --> 00:57:56.896
Aber ich glaube, dass das Konzept an sich einfach nicht massentauglich ist.

00:57:57.107 --> 00:58:01.936
Also es ist ein Konzept, das zur rechten Zeit am rechten Ort hilfreich ist und gut,

00:58:01.936 --> 00:58:04.256
aber es ist nicht massentauglich.

00:58:05.461 --> 00:58:07.271
Solution in search of a problem. Genau.

00:58:09.594 --> 00:58:19.336
Das ist so auch ein bisschen so mein Eindruck. Und was ich faszinierend finde, ist, es gibt halt so die Skeptiker,

00:58:19.336 --> 00:58:23.616
Also du hast ja nur kurz eben jetzt so meine Virtual Reality Credentials mal eben auch,

00:58:23.616 --> 00:58:27.136
ich habe auch schon mal so ein Ding aufgehabt. Hier, der Tobi Struckmeier hat mir mal so ein

00:58:27.136 --> 00:58:31.216
Teil aufgesetzt, das sah einfach nur aus wie eine überdimensionierte Sonnenbrille. Also das ist

00:58:31.216 --> 00:58:36.576
tatsächlich so Heino-Niveau. Also es grenzt an sozialverträglich, dass du einfach dieses Ding

00:58:36.576 --> 00:58:40.336
aufhaben kannst. Und da stöpselst du dein MacBook ein, dann hast du da irgendwie so,

00:58:40.336 --> 00:58:44.099
das ist auch relativ überzeugend und nicht so teuer und alles irgendwie total nett. Aber der,

00:58:44.696 --> 00:58:49.536
Punkt ist halt eben, das ist total nett. Ja, genau. Und halt wirklich voll das tolle Gimmick und da

00:58:49.536 --> 00:58:52.525
da spiele ich halt gerne mit rum, aber wie integrierst du das?

00:58:53.903 --> 00:58:57.035
In die deine sonstige Realität rein. Ja.

00:58:57.783 --> 00:59:01.353
Also Smartphone in die Realität integrieren, war ja super easy.

00:59:02.068 --> 00:59:04.327
Das war wirklich das Produkt, das die Welt gebraucht hat.

00:59:04.651 --> 00:59:06.053
Feine Sache, gar kein Problem.

00:59:07.514 --> 00:59:10.755
Aber die Teile, ist echt schwierig. Und,

00:59:11.565 --> 00:59:15.453
ich finde halt eben dieses Model Element ist ein ganz guter Indikator dafür,

00:59:15.805 --> 00:59:19.653
wieso viele andere diesen Bereich sehen.

00:59:20.846 --> 00:59:25.591
Die haben nämlich nicht nur dieses, die sind nicht irgendwie so, wo wir jetzt ein bisschen skeptisch sind,

00:59:26.032 --> 00:59:29.273
und andere vielleicht sagen, ja, keine Ahnung, schauen wir mal,

00:59:29.759 --> 00:59:32.117
wird, glaub ich, bei speziell denen, die es dir zu verkaufen suchen,

00:59:33.387 --> 00:59:35.682
gar nicht in Frage gestellt, dass das die Zukunft ist.

00:59:36.546 --> 00:59:43.118
Mhm. Das ist so definitiv der Fall, dass das überhaupt gar nicht hinterfragt werden muss.

00:59:43.676 --> 00:59:48.168
Ja. Das ist so ein bisschen wie mit Second Life und dieser hier, ähm ...

00:59:48.321 --> 00:59:52.985
Wie ist das hier, diese Meta-Geschichte von Metaverse?

00:59:54.362 --> 00:59:58.620
Ja, genau. Das sind ja auch so Absolut-Terror-Krepierer gewesen, beides.

00:59:59.619 --> 01:00:02.213
Das ist genau das Ding, genau in die Kategorie fällt das auch rein.

01:00:02.253 --> 01:00:07.217
So Metaverse, einfach nur, weil es schon lange Bücher gibt, in denen sozusagen diese Welt gemalt wird.

01:00:07.523 --> 01:00:12.613
Die wird daraus automatisch extrapoliert, dass, also im Prinzip ist ja ohnehin eine originelle Idee,

01:00:12.653 --> 01:00:16.813
Snowcrash irgendwie als Handbuch zu verwenden, statt irgendwie als, mh, aufpasse.

01:00:16.813 --> 01:00:22.557
Das ist das eine. Das andere ist natürlich auch einfach so, dass das so gesetzt ist.

01:00:23.034 --> 01:00:23.322
Ja.

01:00:24.006 --> 01:00:28.813
Das ist eigentlich das wirklich Spannende. Also, weil nette Technik und funktioniert voll gut.

01:00:28.813 --> 01:00:30.813
Ich habe auch von der Sonnenbrille keine Kopfschmerzen bekommen.

01:00:30.983 --> 01:00:33.813
Und ich könnte mir durchaus vorstellen, dass wenn ich irgendwie einen super speziellen Use Case habe,

01:00:33.813 --> 01:00:37.813
was mir der Tobi da erzählt hat, war, wenn ich jetzt an irgendwelchen Dingern arbeiten möchte,

01:00:37.813 --> 01:00:40.813
an meinem Laptop im ICE, aber das ist halt irgendwie super geheim.

01:00:40.813 --> 01:00:47.213
Der arbeitet ja für eine riesige Consultingbude. Also, wenn der da jetzt wirklich irgendwie ultrakritisches Zeug macht,

01:00:47.394 --> 01:00:50.356
dann kann er das halt einfach direkt in seine Augen beamen, ohne es auf dem Bildschirm zu haben.

01:00:51.598 --> 01:01:04.108
Seh ich ein ist nicht der use case von so besonders viel. Ja ja ja oder keine ahnung dann hast du halt in der bahn einen sehr großen arbeitsbildschirm vor dir das vielleicht auch noch so nett aber.

01:01:05.282 --> 01:01:12.079
So der nachteil irgendwie gar nichts mitzubekommen von der außenwelt also das stört mich halt auch immens und.

01:01:12.970 --> 01:01:19.181
Aber das wichtigere ist, es löst halt wirklich nur sehr wenige Probleme, du brauchst das für sehr wenige Sachen.

01:01:19.631 --> 01:01:34.269
Ja und dafür ist es halt auch dann sehr teuer, wenn das halt so ein 10-Euro-Ding wäre, dann würde ich sagen, okay, das ist halt angemessen für die Menge Probleme, die es gibt, die das löst, aber für so ein Once-In-Life-Problem,

01:01:34.593 --> 01:01:39.308
äh, weiß ich nicht, zwischen 500 und 3.000 Euro,

01:01:39.348 --> 01:01:42.974
oder was so eine Vision Pro kostet, auszugeben, find ich halt irgendwie Käse.

01:01:43.632 --> 01:01:49.978
Ja. Ich hab hier so ein, äh, hier. Das Konzept des Escape-Room-Brettspiels, ist dir bekannt?

01:01:50.995 --> 01:01:56.308
Mh ... Nee, nicht so ganz. Also, du hast quasi ein kooperatives Spielgame

01:01:56.348 --> 01:01:58.468
in Form von so einer Detektivgeschichte.

01:01:58.508 --> 01:02:03.388
Das besteht im Prinzip aus, du hast eine Box, da drin ist eine Plastiktüte, die reißt du auf,

01:02:03.388 --> 01:02:05.668
Es sind lauter Papiere und Beweismittel.

01:02:05.903 --> 01:02:07.910
Da musst du anhand davon den Kriminalfall lösen.

01:02:08.306 --> 01:02:13.411
Du kannst es nur einmal spielen, ne? So ist das doch auch immer bei den Dingern, oder?

01:02:13.996 --> 01:02:14.914
Genau, das ist meistens so.

01:02:15.527 --> 01:02:19.068
Ich hab hier eins liegen, das zocke ich mit meiner Freundin hin und wieder.

01:02:19.108 --> 01:02:24.068
Das hat einen relativ großen Computeranteil, das ist auch gar nicht so ungewöhnlich.

01:02:24.349 --> 01:02:27.548
Da musst du auf der Facebook-Seite recherchieren vom Verdächtigen,

01:02:27.588 --> 01:02:29.748
dass du rausfindest, wann war der und wo.

01:02:29.788 --> 01:02:35.668
Du kannst mit dem Kommissar per WhatsApp reden. eben auch so einen virtuellen Tatort, den du dir angucken kannst.

01:02:36.439 --> 01:02:41.588
Dann kannst du also auf dem Telefon fotografierst ein QR-Code ab und dann kannst du halt so mit

01:02:41.588 --> 01:02:44.508
so Motion-Sensor eben nach oben, nach unten, nach links, nach rechts gucken und dann kannst

01:02:44.508 --> 01:02:47.868
dann irgendwie so feststellen, aha, da ist irgendwie ein Einschussloch in der Wand.

01:02:49.393 --> 01:02:56.563
Und da kannst du auch ne 3D-Brille reinstöpseln. Uh! Das bietet negativen Mehrwert.

01:02:57.621 --> 01:03:01.403
Du könntest einfach das Telefon in die Hand nehmen und dich einfach so auf deinen Platz drehen.

01:03:01.443 --> 01:03:03.683
Dann kannst du halt irgendwie so alles sagen.

01:03:03.723 --> 01:03:06.763
Und dann sagst du halt eben, da ist ein Messer, da liegt Blut.

01:03:06.803 --> 01:03:07.641
Und dann schreiben deine Mitspieler das mit.

01:03:09.003 --> 01:03:13.363
Durch die 3D-Brille gewinnst du nix, außer halt Aufwand und noch mehr Kabel.

01:03:13.501 --> 01:03:17.714
Alleine schon überhaupt ein Telefon permanent geladen, bei so einem Spiel dabei zu haben,

01:03:18.524 --> 01:03:22.243
ist so gerade eben noch okay und das noch zu verkomplizieren durch so einen otto.

01:03:23.539 --> 01:03:28.923
Das steht echt unter rechtfertigungsdruck wenn du mich fragst ja ja ja definitiv sehe ich auch so,

01:03:29.705 --> 01:03:35.123
und andere haben das ja auch erkannt also zum beispiel die holo lens ist ja jetzt auch die sollte ja eigentlich auch für

01:03:35.443 --> 01:03:37.443
jeder mann und frau sein,

01:03:38.083 --> 01:03:41.723
ursprünglich und da hat microsoft ja die strategie auch geändert und gesagt

01:03:41.723 --> 01:03:47.971
gesagt, nee, also wir bieten die weiterhin an, aber eben für ganz bestimmte Use Cases.

01:03:48.043 --> 01:03:55.416
Und das waren auch solche Use Cases, die ich dann netterweise mal durchspielen durfte damit.

01:03:55.523 --> 01:04:02.003
Also, dass du vielleicht mal, dass du in so einem Wissenschaftsmuseum irgendwie mal eine

01:04:02.003 --> 01:04:09.363
Mars-Landung machen kannst. Dass du vielleicht, wenn du irgendwo was zu reparieren hast, dass

01:04:09.363 --> 01:04:15.723
dann dein, keine Ahnung was, dein Motorrad und dann kriegst du dir, kriegst du daneben eingeblendet so

01:04:15.723 --> 01:04:25.283
was ist wo und welche Teile sind das und welches Werkzeug nimmst du und sowas. Dafür ist es schon

01:04:25.283 --> 01:04:32.883
okay und so platzieren die das und da kann ich mir vorstellen, ja, da kann man das einsetzen.

01:04:32.883 --> 01:04:38.843
Ja, aber also ich würde sagen, da würde ich halt bei dem Museums-Use-Case auch echt noch mitgehen.

01:04:39.410 --> 01:04:43.243
Also da halt wirklich was reinzubauen, dass dann die Kids was lernen und das ist spannend und so.

01:04:43.243 --> 01:04:48.083
Super. Das kann dann gerne auch Abertausende kosten. Aber allein schon, wenn es so darum geht.

01:04:48.083 --> 01:04:49.402
Ich will mein Motorrad reparieren.

01:04:50.330 --> 01:04:56.361
Ja oder vielleicht ein flugzeug oder was weiß ich wenn du so ein flugzeugmechaniker bist oder.

01:04:57.252 --> 01:05:05.795
Ja da geht es dann schon eher richtig dahin aber auch da würde ich dann sagen da bewegst du dich halt eben bei dem flugzeugmechaniker und bei dem museum in ähnlichen budgetreichweiten aber ich stelle mir jetzt vor.

01:05:06.561 --> 01:05:13.969
Ich schraube als kleinunternehmer oder auch als privatperson wirklich an meinem motorrad also dafür dafür nicht.

01:05:14.762 --> 01:05:19.857
Genau, aber dann ist halt wirklich die Frage, wie groß ist da wirklich dann der Markt für diese Dinger?

01:05:19.956 --> 01:05:25.740
Also wie viele Flugzeugmechaniker brauchen so ein Ding? Wie viele Museen brauchen so ein Ding?

01:05:25.740 --> 01:05:30.060
Lohnt sich da wirklich dieses ganze Tremorium, das dafür gemacht wird?

01:05:30.060 --> 01:05:33.180
Und braucht es dafür halt eben auch ein originäres HTML-Element?

01:05:33.774 --> 01:05:38.375
Also ich finde das einfach nur super faszinierend, weil halt alle so, was heißt alle, sehr viele einfach so,

01:05:38.852 --> 01:05:42.912
es scheint halt zwei Camps zu geben, entweder so die ja, also, weißt du, so?

01:05:43.092 --> 01:05:47.296
Und dann gibt's halt die, für die das absolut gesetzt ist, dass das die Realität ist.

01:05:47.530 --> 01:05:50.940
Und dann gibt's halt sehr wenige von diesen Enthusiasten wie den Tobi,

01:05:50.980 --> 01:05:54.480
die halt einfach nur eine gesunde Nerdbegeisterung dafür entwickeln,

01:05:54.520 --> 01:05:56.379
wo ich auch sagen kann, das kann man so sehen.

01:05:57.009 --> 01:06:02.879
Aber diese, das ist die Zukunft, TM, ist echt krass. Das hab ich zuletzt bei den Bitcoin-Bros gesehen. Ja. Nee, nee.

01:06:03.833 --> 01:06:08.100
Aber das scheint ja auch nicht todzukriegend zu sein. Das ist ja schon ein langes Thema.

01:06:08.140 --> 01:06:16.980
Das war ja schon hier mit diesem VX1-Headset damals. Also, dass man mit Doom und Doom 2 in den 90ern benutzen konnte.

01:06:17.040 --> 01:06:19.380
Da war das ja schon Thema.

01:06:19.533 --> 01:06:25.640
Und immer hieß es halt, es liegt einfach an der Technik. Und hier der id-Software-Frontmann John Carmack

01:06:25.700 --> 01:06:29.880
ist ja dann auch zu hier, ähm, na ja, zu Facebook.

01:06:29.940 --> 01:06:32.469
Und wie heißt der? Brillenmarke gewechselt.

01:06:33.060 --> 01:06:39.840
Oculus. Oculus, genau. Ähm, und ist ja auch nicht mehr da. Also, ich glaube, der ...

01:06:40.364 --> 01:06:45.080
Ich weiß nicht, ob er jetzt geheilt ist oder nicht, aber der war ja auch ein großer Verfechter dessen.

01:06:47.287 --> 01:06:50.438
Ich glaub, der ist einfach nur schlau genug, ein sinkendes Schiff zu erkennen.

01:06:51.635 --> 01:07:00.397
Mhm. Wobei, insofern, da hatte ich nicht den Eindruck, dass die so sinken, also, ja, mal ein bisschen, aber damals noch nicht.

01:07:00.457 --> 01:07:03.671
Nee, nee, ich mein, das Hype-Thema, von dem er so überzeugt war.

01:07:03.941 --> 01:07:04.265
Mhm.

01:07:05.147 --> 01:07:09.397
Also, ich glaub, der ist schlau genug und auch manns genug, um sich einzugestehen,

01:07:09.667 --> 01:07:12.484
upp, da hab ich ins Klo gegriffen, ich mach wieder was anderes.

01:07:12.777 --> 01:07:15.239
Ja, ja, das auf jeden Fall. Er baut ja noch Raketen.

01:07:16.706 --> 01:07:20.737
Siehst du, das ist wenigstens mal Technologie, das darf teuer sein, das braucht man, das ist nützlich,

01:07:20.777 --> 01:07:26.297
das ist ein Produkt, das hat einen klaren adressierbaren Markt und alles, das finde ich sehr viel sinnvoller.

01:07:26.337 --> 01:07:27.932
Der soll Raketen bauen. Mhm.

01:07:28.670 --> 01:07:33.257
Das macht Sinn. Soll nicht auf die Idee kommen, eine Social-Media-Plattform zu bauen,

01:07:33.297 --> 01:07:36.322
weil anscheinend ist die Kombination aus Raketen und Social Media,

01:07:36.880 --> 01:07:39.437
da funktioniert irgendwie was nicht, wenn man das zusammenmischt.

01:07:40.137 --> 01:07:47.877
Genau, also ich weiß nicht, wie's dir geht. Hast du jetzt noch was hier in dieser Liste,

01:07:47.937 --> 01:07:53.077
was du interessant findest, was wir noch irgendwie besprechen sollen?

01:07:53.137 --> 01:07:58.877
Also, es gibt natürlich immer noch irgendwelche Kandidaten.

01:07:58.937 --> 01:08:03.377
Weiß nicht, Seamless, iFrames, ja, wollen wir halt immer schon haben.

01:08:03.437 --> 01:08:08.677
Sanitizer, API, da können wir noch mal irgendwann vielleicht drüber sprechen,

01:08:08.884 --> 01:08:11.665
wenn diese ja grade im Umbruch befindlich.

01:08:12.691 --> 01:08:21.622
Wir haben ja auch den Freddy da mal vor, weiß nicht, wahrscheinlich wird das jetzt auch schon wieder zwei Jahre her sein.

01:08:21.677 --> 01:08:28.677
Da kann man nochmal hinverweisen, worum es da in der Sanitizer-API grundsätzlich geht. Ja, ich denke, wir haben so die

01:08:28.677 --> 01:08:34.677
spannenden Sachen durchgesprochen. Also wie gesagt, das mit den Seamless-I-Frames wäre noch so das Letzte, was ich irgendwie sagen

01:08:34.677 --> 01:08:40.130
würde. Wäre was, was ich gerne hätte, aber ich kann sehr gut nachvollziehen, dass das von der Komplexität her.

01:08:40.859 --> 01:08:45.237
Also erst mal, ist kompliziert. Und zweitens, gibt's, glaube ich, viele Möglichkeiten,

01:08:46.171 --> 01:08:52.877
ein ausreichendes Maß an Ziemlichkeit herzustellen, ohne dafür ein natives Feature zu haben.

01:08:53.157 --> 01:08:56.379
Man baue sich einen Message-Buzz, man importiere die gleiche Zersetzer-Teil zweimal.

01:08:57.703 --> 01:09:03.637
Geht auch. Wird für viele vollkommen okay sein. Ich meine, die gab's ja auch mal eine Zeit lang.

01:09:03.637 --> 01:09:06.948
Und dann sind die ja wieder sozusagen rausgenommen worden.

01:09:07.218 --> 01:09:12.466
Ich glaube, die hießen auch Seamless I-Frames.

01:09:16.931 --> 01:09:23.781
Und wahrscheinlich war's auch nur in Chrome. Genau, und dann gibt's ja noch dem nächsten Konzept von fenced iframes,

01:09:23.821 --> 01:09:28.661
die wiederum dann noch mehr Sicherheit bieten als die normalen iframes.

01:09:28.701 --> 01:09:36.034
Also da kann man dann das, was du grade alles gesagt hast, also dass man irgendwie eine Crossframe-Kommunikation hat,

01:09:36.484 --> 01:09:41.741
über die man jetzt in deinem Beispiel irgendwie die Höhe des Inhalts des iframes

01:09:41.781 --> 01:09:45.361
dann an die äußere, die einbettende Seite kommunizieren kann,

01:09:45.361 --> 01:09:48.961
kann, die dann wiederum das iFrame entsprechend in der Größe anpasst.

01:09:49.870 --> 01:09:53.796
Diese Dinge würden dann bei den fenced iFrames nicht gehen.

01:09:55.983 --> 01:09:58.761
Was ich bei solchen Dingern halt immer denke, wenn jemand so was haben möchte.

01:09:59.761 --> 01:10:04.161
Also man kann über HTTP auch andere Dinge transportieren als Jason.

01:10:05.165 --> 01:10:11.035
Also man kann auch einfach sich ein Skript schreiben, dass sich ein Haufen HTML holt und das irgendwo reindampft. Und das ist okay.

01:10:13.421 --> 01:10:19.041
Ja. Also, dann hast du auch ein seamlesser. HTMLxLike, genau, das ist so eine Idee, oder ich habe eine

01:10:19.041 --> 01:10:27.041
Web-Component, die ich seit Ewigkeiten verwende, um so in meinen Slides Module zu importieren, irgendwie so, erkläre

01:10:27.041 --> 01:10:31.041
Web-Components, okay, importiere dieses Ding, und dann darunter dieses Ding, darunter dieses Ding, und dann ist fertig.

01:10:31.041 --> 01:10:35.041
HTML-Import, das funktioniert ja auch wie ein seamless iframe, nur halt eben

01:10:35.422 --> 01:10:39.023
es ist halt kein eigener Kontext, sondern das ist halt irgendwie alles einfach so

01:10:39.104 --> 01:10:46.721
reingedampft und das ist völlig okay und das kann man halt eben auch machen, also ist halt schwierig,

01:10:46.721 --> 01:10:50.121
also ein iFrame ist ja irgendwie schon ein relativ guter Trade-Off aus so Isolation und

01:10:50.121 --> 01:10:55.641
das eingebettet und die Fenced-Variante, da müsste man wirklich mal die Security-Freaks

01:10:55.641 --> 01:10:57.838
Fragen, inwiefern die jetzt wirklich zwingend notwendig ist.

01:10:59.990 --> 01:11:03.920
Die unsecure Variante, dump einfach HTML in die Seite, geht ja auch.

01:11:03.920 --> 01:11:08.320
Dann hast du noch Web Components und Shadow DOM, dann kannst du auch dein CSS scopen.

01:11:08.320 --> 01:11:10.081
Da kann man ja schon viel anstellen.

01:11:10.684 --> 01:11:14.920
Gibt's verschiedene Abstufungen, in die man sich rein opten kann. So sieht's aus.

01:11:14.920 --> 01:11:21.667
Und deswegen ist es nützlich und schon ganz gut gelöst. Nö, ich würd sagen, wir haben jetzt über drei Revisionen,

01:11:22.369 --> 01:11:27.920
ganz gut abgerissen, was da im Bereich HTML so drin ist und was da alles so kommen mag und schon existiert.

01:11:27.920 --> 01:11:38.660
Schon existiert und genau das sind jetzt ja quasi erstmal das ist ja sozusagen das inhaltliche brainstorming für den noch überhaupt gar nicht

01:11:38.660 --> 01:11:52.260
gelaunchten state of html das heißt also da wird dann in dem fall die lehrer die da den hut auf hat das ganze irgendwie destillieren aus dem input den die

01:11:52.260 --> 01:11:56.500
die Leute geliefert haben und genau, dann gibt's den irgendwann.

01:11:56.500 --> 01:12:01.079
Dann werden wir das wahrscheinlich auch mal retweeten und retooten und re-axen.

01:12:03.420 --> 01:12:07.260
Und dann können wir ja, dann schauen wir mal, je nachdem, was dabei rauskommt,

01:12:07.260 --> 01:12:11.420
ob wir dann vielleicht, wenn die Results da sind, da auch nochmal reinschauen,

01:12:11.420 --> 01:12:15.500
wie wir das jetzt bei dem Set of CSS gemacht haben oder ob wir die Results sehen

01:12:15.500 --> 01:12:19.939
und sagen, okay, gut, haben wir im Grunde ja alles, alles gesagt, was zu sagen ist.

01:12:20.623 --> 01:12:24.800
Naja, sagen wir mal so, ich glaube, wir zwei haben dazu wahrscheinlich schon ziemlich viel gesagt.

01:12:25.799 --> 01:12:30.980
Aber dieser Podcast hat ja noch eine ganze Menge mehr Leute und eine ganze Menge mehr Gäste, die man akquirieren könnte.

01:12:30.980 --> 01:12:33.622
Und die da vielleicht ganz andere Takes zu haben als wir.

01:12:34.865 --> 01:12:39.492
Ja, stimmt. Ja, das ist so eine gute Idee. Dann machen wir das doch. So klug war das.

01:12:40.824 --> 01:12:46.793
Wunderbar dann beglückwünsche ich uns beide dazu dass wir das jetzt ins ziel manövriert haben das ganze.

01:12:47.423 --> 01:12:57.586
Genau in nur vier mit in nur vier aufnahme sessions haben wir eine dreiteilige folge eingetütet das ist doch ganz großartig genau weil wir letztes mal ja vom weg abgekommen sind.

01:12:58.469 --> 01:13:05.874
Genau und dies machen wir nach nur 34 minuten den weg wieder gefunden den wir beschreiten wollten so sieht es aus korrekt.

01:13:05.940 --> 01:13:10.127
Alles klar. Dann vielen Dank.

01:13:10.559 --> 01:13:16.974
Danke auch. Nächstes Mal wieder, glaube ich, State of CSS, zweiter Teil. Mal sehen, ob es auch zwei Teile werden,

01:13:16.974 --> 01:13:19.327
aber ich hoffe nicht. Aber vielleicht doch, man weiß es nicht.

01:13:19.993 --> 01:13:28.254
Genau. Und wenn ihr Hörer und Hörer Anregungen, Fragen, Ideen habt oder mit uns schimpfen wollt,

01:13:28.254 --> 01:13:31.574
weil wir irgendeinen Vorschlag vielleicht nicht erwähnt haben,

01:13:31.786 --> 01:13:45.334
wie Bradging API oder Web-Share API, Dann macht das und könnt ihr auf X und Mastodon machen oder ihr hüpft in unseren Community Slack und alles findet ihr verlinkt auf unserer Seite.

01:13:45.334 --> 01:13:51.714
Dann bis nächste woche macht's gut tschüss bis dahin tschüssi.

01:13:52.560 --> 01:14:15.120
Music.

