[devnexus 2022] ARIA: A grande method of accessible markup

Speaker: Chris DeMars

Twitter: @saltnburnem

Link to table of contents

———————

General

  • low vision vs no vision
  • some types can be corrected and some cannot
  • memory problems included
  • Think about: hearing, visual, cognitive, movement and temporary
  • 1 billion people around the world have some type of disability
  • People don’t have to disclose they have a disability. Assume 20-25% do.

What is accessibility?

  • numeronym: a11y == accessibility
  • w3c – “people with disabilities can use the web”. better to say everyone can use the web
  • Don’t use accessibility overlays. [looked online – hack to use tool to patch bad accessbility]

ARIA

  • Accessible rich internet applications
  • Helps AT (assisted technology) with web pages
  • One rule: don’t use ARIA. Better to use semantic markup.
  • Stop using divs/spans unless have to. No semantic meaning. Better to be using header/nav/etc tags (vs h1/h2/etc heading level)
  • Anchor links for navigation only
  • When have to use div/span, add ARIA

Roles

  • abstract – command, input, landmark, select, structure, widget, etc
  • widget – button, link, option, radio, tab, textbox, etc
  • document structure – article, directory, figure, img, table, tooltip, etc
  • landmark – banner, contentinfo, form, main, navigation, search
  • live region (auto updating section) – alert, log, marquee, status, timer

States and Properties

  • States and Properties
  • describe what is happening
  • aria-describedby – if need to write a lot about what an image does
  • aria-haspopup
  • aria-label
  • aria-labeledby
  • aria-checked
  • aira-disabled
  • aira-required
  • etc

WAI/ARIA

  • Want to get to level AA.
  • Bank of America, Dominos, Red Roof In got sued for not meeting
  • Only get to AAA if in academia or government. Expensive. Ex: need closed captioning, ASL video, downloadable transcript, VPAS?
  • Want to get to level AA.
  • Bank of America, Dominos, Red Roof In got sued for not meeting
  • Only get to AAA if in academia or government. Expensive. Ex: need closed captioning, ASL video, downloadable transcript, VPAS?

Other notes

  • Don’t set outline to 0/none for focus. User needs that
  • https://caniuse.com
  • https://gist.github.com/chrisdemars/e8ca7a5282ab65ea2f412776a7cf0aa3

My take

The intro was good to pull me in. As were the examples of why to use semantic tags where can. The actual ARIA info felt a little like an info dump. I would have liked examples on a web page to see what these are/how they work. Or what the code looks like. Some was said out loud which helped. ARIA has changed a lot since I last used it. (so have front ends overall). The references to old tags like blink were fun.

[devnexus 2022] what’s new in spring 2022

Speaker: Spencer Gibb

Twitter: @spencerbgibb

Link to table of contents

———————

History

  • Spring 1 came out in 2004. Spring 5 came out in 2017 – included Java 8/11/17
  • Spring Boot 1 released 2014 with Java 6 baseline. Spring Boot 2 released 2018 with Java 8 (baseline)/11/17. Now has 6 month release cycle to match Java
  • Spring Cloud – launched 2015. last release in 2020. Started with wors *Angle, Brixton, etc). Switched to # release versions (2020)
  • Josh Long’s favorite place on the internet is prod. Secon favorite is start.spring.io.

Spring 6

  • corresponding libraries have version as well. e: Spring security, data
  • Spring Boot 3 and Spring Cloud 2022.0. go with Spring 6
  • Go to Spring Initializr (start.spring.io) if not sure what goes together

Java 17

  • Baseline Java 17. Must hava Java17+ to run
  • Will have compatability wihth Java 18, 19, etc

Jakarta EE 9

  • Package renaming (javax -> jakarta)
  • Tomcat 10/Jetty 11/Undertow 2.2
  • JPA3 3 (Hibernate 6)

Native

  • GraalVM compiles to native
  • Faster startup, less memory usage
  • Spring Native was an exeperimental project. AOT metadata processing moves to Spring Framework. Built time pugins move to Spring Boot. Type and resoures hints move to relevant projects
  • Native pros – serverless, cost via lower resource consumption, CLI
  • Native cons – less mature, no JIT

Observablity

  • Introuced with Sleuth. 2021.0 will be last Sleuth release
  • Now Micrometer tracing
  • new Observation API
  • Instrumentation moving to relevant projects
  • Micrometer staying as Java 8 baseline

Declarative Clients

  • Feign was part of spring-cloud-netflix and open sourced Now spring-cloud-openfeign
  • Declarative blocking web service client
  • Now in Spring framework
  • Will add for GraphQL and RSocket (reactive sockets)

General

  • API testing tool: https://httpie.io
  • thenounproject.com – good collection of free stock art
  • Logger creates a lazy version so doesn’t interpolate strings unless needed. Also, a supplier verson
  • AutoConfiguration annotation to replace Configuration annotation
  • Problem details – standard json format for error messages. Content type application/problem+json
  • Removing a bunch of stuff. One is Freemarker JSP whch I didn’t know existed
  • OSS Spring 5 supported until 2024

My take

Excellent outline making the content easy to remember. Which is good because there was a lot of infomration! The live coding was good for seeing the code based changes and also breaking up the information. I liked seing the ”upgrade” with the jakarta package names and the micrometer example

[devnexus 2022] batch processing in action

Speaker: Hillmer Chona & Rodrigo Graciano

Twitter @HillmerCh and @RodgrigoGraciano

Link to table of contents

———————

Anotations vs XML

  • @EnableBatchProcessing automatically provides beans for job repo, job launcher, etc
  • If use XML, need to create all beans yourself
  • Don’t mix and match XML vs annotations. Could wind up with two of a bean

Concepts

  • Steps – one reader/writer
  • Job repository – provided by framework
  • async doesnt block – JobLauncher vs AsyncJobLauncher
  • Can run at the comand line or in web container
  • Processors – transform, filter, validate
  • Chunk – collect data and sent data on when chunk complete
  • Many types of readers, and writers built in. Can also write own
  • Listeners run before/after job
  • Step listeners are more detailed
  • Fault tolerance – skip exceptions
  • Retries

Flows

  • Conditional – exit status, run different step on success/fail.
  • Decider – can have custom logic, not just exit status ex: day of week)
  • Split – run steps in paralelel

Live demo

  • Heavy use of chaining
  • Yay! Records
  • JobExecutionListener has two methdods beforeJob() and afterJob(). Alternatively, an put logic in parent job

My take

The keynote ran late and I didn’t make it in tie for the beginning. Luckily, I saw Rodrigo do a practice run so was able to jump in. Lots of information and presentation well designed for explaining concepts