DevBlogs

Good morning.

  1. Python 3.13.0 beta 1 released (Python Insider) code

    Python 3.13 beta 1 is released. It is the first of four beta release previews of 3. 13. The next pre-release of Python 3.12 will be released in May.

  2. Slop is the new name for unwanted AI-generated content (Simon Wilison)

    ‘Slop’ is the new name for unwanted AI-generated content. Simon Willison is a big proponent of LLMs as tools for personal productivity. But he is increasingly of the opinion that sharing unreviewed content that has been artificially generated with other people is rude.

  3. TIL: Running UV outside a virtualenv (Daniel Greenfeld) code

    A few months ago I blogged about forcing pip to require a virtualenv. However, when automating tests and deployments sometimes you work outside of virtualenvs. With pip this isn't a problem, you just don't set what I did in that article. But what if you are using the rust-based uv where the default is to keep you in a virtual env?

  4. PSF Grants Program 2022 & 2023 Transparency Report (Python Software Foundation)

    The Python Software Foundation has released a report on its Grants Program. The report includes data, numbers, analysis, and a proposed path forward. It also includes a supplemental analysis of several specific grant applications for which we were requested.

  5. PyTorch vs TensorFlow for Your Python Deep Learning Project (Real Python) code

    PyTorch and TensorFlow are open-source Python libraries that use graphs to perform numerical computations on data. Both are used extensively in academic research and commercial code. How do you decide which one is best for your project? In this tutorial, you’ll learn:You’d start by taking a close look at both platforms, beginning with the slightly older Tensorflow. Then, you'll explore PyTorch to help you determine which choice is best.

  1. Return HTTP response as a collection (Effectively) in Laravel (Amit Merchant) code

    The new "select" method for Laravel Collections is a more elegant way to convert the response to a collection. The HTTP facade lets you collect the response as a collection natively by using the collect() method. Instead of using the json() method, you can use the collection() method directly.

  2. PSF Board Election Dates for 2024 (Python Software Foundation)

    There are 3 seats open on the PSF board. You must be a contributing, managing, supporting, or fellow member by June 25th to vote in this election. Nominations open on Tuesday, June 11th, 2:00 pm UTC.

  3. Jupyter recognized as “Champion of Open Science” by U.S. White House (Jupyter)

    Jupyter is recognized as a “Champion of Open Science” by the United States White House Office of Science and Technology Policy. This recognition honors the large group of contributors, users, and organizations that have made Jupyters what it is today.

  4. Announcing Data Wrangler: Code-centric viewing and cleaning of tabular data in Visual Studio Code (Microsoft Python)

    Data Wrangler is a free extension that offers data viewing and cleaning that is directly integrated into VS Code and the Jupyter extension. It provides a rich user interface to view and analyze your data, show insightful column statistics and visualizations, and automatically generate Pandas code.

  5. Weeknotes: more datasette-secrets, plus a mystery video project (Simon Wilison) code

    datasette-secrets 0.2 is the first non-alpha release of that project. The plugin is now compatible with both the Datasette 1.0 alphas and the stable releases. I’ve been collaborating on a really fun video project.

  6. Node v20.13.0 (LTS) (Node) code

    The performance of the base64 and base64url encoding and decoding functions has been improved significantly. CustomEvent has been marked stable. It is possible to get the available memory in the system by calling process.getAvailableMemory()

  7. Django bugfix releases issued: 5.0.6 and 4.2.13 (Django)

    The web framework for perfectionists with deadlines.

  8. Flattening a List of Lists in Python (Real Python)

    Flattening a list involves converting a multidimensional list, such as a matrix, into a one-dimensional list. In this video course, you’ll learn how to do that in Python.

  9. Introducing Cloudflare for Unified Risk Posture (Cloudflare)

    Cloudflare for Unified Risk Posture is a new suite of cybersecurity risk management capabilities. It can help enterprises with automated and dynamic risk posture enforcement across their expanding attack surface. Customers can take advantage of built-in risk management functionality packaged as part of existing portfolios.

  10. Using Fortran on Cloudflare Workers (Cloudflare) code

    Fortran is a programming language that was originally written in 1957. It's well suited for scientific workloads and is used in NASA's FUN3D game. You can now use Fortran on Cloudflare Workers.

  11. Modern WordPress - Yikes! (David Bushell) code

    “Twenty Twenty-Four’ is the flagship WordPress theme for 2024. It is an exemplary showcase of modern theme development. How it’s meant to be done.

  1. This Week in Spring - May 7th, 2024 (Spring)

    This week in Spring is a quick one as I'm off to London for Devoxx UK 2024. I've got to run for a plane so let's make this week's installment quick!

  2. Python News: What's New From April 2024 (Real Python) code

    Python released versions 3.13.0a6 and 3.12.3 in April 2024. The former received several exciting features, improvements, and optimizations. The latter got more than 300 commits for security improvements and bug fixes. There is also great news about PyCon US 2024, which opened its call for volunteers.

  3. How to Read and Write Parquet Files with Python (Mouse vs Python) code

    You can read and write Parquet files with Python using the pyarrow package. The code to turn a pandas DataFrame into a Parquet file is about ten lines. You can also get the metadata from a Parquet file using Python.

  4. Django bugfix releases issued: 5.0.5, and 4.2.12 (Django)

    The web framework for perfectionists with deadlines. Today we've issued 2 bugfix releases.

  1. How LLMs Work, Explained Without Math (Miguel Grinberg) code

    Large Language Models (LLMs) are computer algorithms that can predict what the next word is going to be. The GPT-2 language model uses a vocabulary of 50,257 tokens. Each token in an LLM's vocabulary is given a unique identifier, usually a number.

  2. Last call for DjangoCon Europe 2025 organizers (Django)

    DjangoCon Europe is a major pillar of the Django community. We are looking for the next group of organizers to own and lead the 2025 conference. Submit your proposal via our DjangoCon Europe 2025 expression of interest form.

  1. Your Low Code Solution Needs an Escape Hatch (Deno)

    Low-code solutions can offer your users value by significantly reducing development effort and complexity. As your platforms grow, your users will inevitably require more customization to meet their needs. Instead of anticipating and building for every use case, innovative platforms will simply offer an “escape hatch”

  2. [Week of 4/29] LangChain Release Notes (LangChain)

    LangGraph is a framework for building stateful, multi-actor applications with LLMs. We’re hosting an online workshop with AI Makerspace next Wednesday, May 8th.

  3. Python in Visual Studio Code – May 2024 Release (Microsoft Python) code

    The May 2024 release of the Python and Jupyter extensions for Visual Studio Code includes the following announcements. We have also added small enhancements and fixed issues requested by users.

  4. The PSF's 2023 Annual Impact Report is here! (Python Software Foundation)

    2023 was an exciting year of growth for the Python Software Foundation. We’ve captured some of the key numbers, details, and information in our annual Impact Report.

  5. Bun v1.1.7 (Bun) code

    Bun v1.1.7 is here! This release fixes 28 bugs (addressing 11 👍) Glob workspace names in bun install. Asymmetric matcher support in expect.extends() equals. bunx --version.

  6. The Real Python Podcast – Episode #203: Embarking on a Relaxed and Friendly Python Coding Journey (Real Python)

    Real Python author Stephen Gruppetta is here to talk about his new book, “The Python Coding Book” Stephen has been teaching Python to adults and children for many years. He wants to share the relaxed and friendly learning environment he's developed.

  7. The Time Linkerd Erased My Load Balancer (Mat Dugan) code

    K8s is moving from Ingress to Gateway API in k8s. Ingress is the classic way of writing a configuration to tell a load balancer what routes should hit what services. Gateway API is the re-imagined process for doing this where the problem domain is scoped.

  1. A Bootiful Podcast: Carl Azoury, Zenika founder and CEO (Spring) podcast

    Zenika founder and CEO Carl Azoury talks about the Spring community.VMware offers training and certification to turbo-charge your progress.

  2. spaCyEx v0.0.2 (Explosion) code

    SpaCyEx is a powerful extension for spaCy, designed to make pattern matching as flexible and easy as using regular expressions. It builds upon the existing capabilities of spaCy's Matcher, enhancing it with a more accessible syntax for defining complex patterns.

  3. How META-INF gets more out of Bitbucket with Forge (Atlassian)

    META-INF is an Atlassian partner. Pipeline Forms is an app that integrates with Bitbucket to enhance pipeline management. The app allows users to run Form-based pipelines on their behalf.

  4. Introducing Object Storage (Replit) code

    Replit Object Storage is a fast and durable way to persist files and other unstructured data. It handles any number of processes reading and writing simultaneously, enabling your application to seamlessly add compute power and scale to handle extra requests. Python and Typescript users can now use the Replit Object storage library to read and write files from Object Storage with zero configuration.

  5. How Dosu Used LangSmith to Achieve a 30% Accuracy Improvement with No Prompt Engineering (LangChain)

    Dosu is an engineering teammate that acts as the first line of defense for ad-hoc engineering requests. In-context learning is a technique where the LLM prompt includes example input/output pairs.

  6. June 2024 marks 10 incredible years of Django Girls magic! 🥳✨ (Django)

    June 2024 marks 10 years of Django Girls magic. To celebrate, we're reflecting on our impact and want to hear from YOU! Share your stories in a short survey courtesy of JetBrains and PyCharm.

  7. Freeing the chatbot (One Useful Thing)

    The Rabbit R1 is a $200 AI device that is so blindingly orange that it is hard to describe. The Meta Ray-Ban smart glasses have built-in speakers, microphones, and a camera. The final device is the AI-in-a-box that is capable of running a small computer with a screen.

  8. Node v22.1.0 (Current) (Node) code

    The patch implements automatic on-disk code caching that can be enabled via an environment variable NODE_COMPILE_CACHE. When set, whenever Node.js compiles a CommonJS or a ECMAScript Module, it will use on- disk V8 code. cache. Cache generated by different versions.of Node.JS will be stored separately if the same directory is used.

  9. The Python Show Podcast Ep 39 – Buttondown – A Python SaaS with Justin Duke (Mouse vs Python)

    Buttondown is a Python-based Software as a Service (SaaS) application for creating and managing newsletters. Justin is the founder of Buttondown, a Python-based SaaS application.

  10. What’s new for apps distributed in the European Union (Apple)

    Apple will bring our recent iOS changes for apps in the European Union (EU) to iPadOS later this fall, as required. Developers can choose to adopt the Alternative Business Terms for Apps in the EU that will include these additional capabilities and options on iPadOS.

  11. Quiz: The Python calendar Module (Real Python) code

    Interactive Quiz ⋅ 6 QuestionsBy Bartosz Zaczyński. You’ll get 1 point for each correct answer. The maximum score is 100%. Good luck!

  12. #460: Dropbase: Build Internal Tools with Python (Talk Python) podcast

    Made with in Portland, OR, USA.

  13. TBM 285: Shared Teams and Apples-to-Oranges Priorities (John Cutler)

    Leadership dutifully converges on a few equally weighted priority “pillars” The priority pillars don’t lend themselves to being prioritized against each other as stated.

  1. Regression Testing with LangSmith (LangChain)

    LangSmith is a new tool that lets you quickly and reliably evaluate your LLM application. It has been used to improve our regression testing flow. We’ve built a comparison view that allows you to view data across multiple evaluation runs.

  2. Python Sequences: A Comprehensive Guide (Real Python) code

    Learn about Python’s built-in data types and the basics of object-oriented programming. Test your knowledge with our interactive “Python Sequences: A Comprehensive Guide’ quiz.

  3. Deno 1.43: Improved Language Server performance (Deno) codevideo

    Deno 1.43 is the latest version of the open-source JavaScript editor. This release adds support for V8 code caching and node:worker_threads. It also includes improvements to the language server and AsyncResource.

  1. Spring Tips: Beans, Beans: What's in a Spring bean? (Spring) video

    This week we explore the essential Spring bean. What are they, how are they created, and what do they mean to you?VMware offers training and certification to turbo-charge your progress.Tanzu Spring Runtime offers support and binaries for OpenJDK, Spring, and Apache Tomcat.

  2. How to Watermark a Graph with Matplotlib (Mouse vs Python) code

    Matplotlib is one of the most popular data visualization packages for the Python programming language. It allows you to create many different charts and graphs. This tutorial focuses on adding a “watermark” to your graph.

  3. Working With Global Variables in Python Functions (Real Python) code

    Using global variables inside your Python functions can be tricky. You’ll need to differentiate between accessing and changing the values of the target global variable.

  4. Script – Document All Azure Private DNS Zones (Aidan Finn) code

    Aidan Finn, IT Pro, has written a script to find all Azure Private DNS Zones in a tenant and export information on screen and as markdown in a file. The script even writes the content as a Markdown table in a .md file.

  1. This Week in Spring - April 30th, 2024 (Spring) code

    This week in Spring, we're looking at how to get the most out of your Spring 2015 software. We'll also be looking at some of the upcoming events in the Spring community.

  2. Spring Tips: Spring Cloud Gateway for Spring MVC (Spring) video

    This week we look at the fantastic new support for Spring MVC. Java 21's virtual threads are made all the more amazing by virtual threads.

  3. Three New Forge Features That Will Help You Build Better Apps (Atlassian) code

    Atlassian is promoting three major new features to general availability. The native Forge JS runtime, Forge remote, and UI kit 2 are all being promoted. Native JS eliminates friction of library incompatibility and allows apps to work faster. UI kit is now not just easy to use, it offers richer UI components and faster interactions.

  4. How Machine Learning improved the Chrome address bar on Windows, Mac and ChromeOS (Chromium)
  5. How Slack used Deno to save months of engineering effort in launching their new platform (Deno)

    Slack launched its first developer platform in 2015. By 2020, this platform saw millions of active developers each week. Developers voiced friction points around having to rebuild each Slack app from scratch. Slack chose to use the Deno runtime in their next generation platform.

  6. Python's unittest: Writing Unit Tests for Your Code (Real Python) code

    The Python standard library ships with a testing framework named unittest. The unittests package has an object-oriented approach where test cases derive from a base class. To get the most out of this tutorial, you should be familiar with some important Python concepts.

  7. Q1 2024 Internet disruption summary (Cloudflare)

    First quarter of 2024 kicked off with quite a few Internet disruptions. Damage to both terrestrial and submarine cables caused problems in a number of locations. Governments in several African countries, as well as Pakistan, ordered Internet shutdowns.

  1. Welcome our new OPS member - Baptiste Mispelon (Django)

    Baptiste Mispelon is a long-time Django contributor. He was chair of the Djangocon Europe 2016 edition. He currently lives in the Norwegian countryside.

  2. Bun v1.1.6 (Bun) code

    Bun v1.1.6 is here! This release fixes 10 bugs (addressing 512 reactions) We've implemented UDP socket support & node:dgram. DataDog and ClickHouseDB now work. There are also Node.js compatibility improvements and bugfixes. We're hiring systems engineers in San Francisco to build the future of JavaScript.

  3. Software Development As Collective Learning With Hazel Weakly (John Cutler) podcast

    Hazel Weakly is a Principal Platform Architect at Datavent. She is known as the Infrastructure Witch of Hachyderm (a popular Mastodon instance) We talk about Hazel’s journey from individual force multiplier to focusing on collaborative learning.

  1. #459: I Built A Python SaaS with AI (Talk Python) podcast

    Made with in Portland, OR, USA.

  1. Bun v1.1.5 (Bun) code

    Bun v1.1.5 fixes 64 bugs. import any file as text via the type: "text" import attribute. Introduces a new crash reporter. package.json doesn't error with comments or trailing commas.

  2. Reminder: Privacy requirement for app submissions starts May 1 (Apple)

    Starting May 1, 2024, new apps that have a newly added third-party SDK that’s on the list of commonly used third- party SDKs will need all of the following to be submitted in App Store Connect:Apps won’t be accepted if they fail to meet the manifest and signature requirements.

  3. bun.report is Bun's new crash reporter (Bun) code

    Bun crashes are hard to reproduce and debug. The crash report fits in a ~150 byte URL containing zero personal information. The function addresses are pointers in memory to where the application code is loaded.

  4. The Real Python Podcast – Episode #202: Pydantic Data Validation & Python Web Security Practices (Real Python) code

    This week, we discuss the recent Real Python tutorial “Pydantic: Simplifying Data Validation in Python. We also share several other articles and projects from the Python community.

  1. A Bootiful Podcast: Daniel Garnier-Moiroux on Passkeys and Spring Security (Spring) podcast

    This week's episode of Spring Boot Camp features a guest appearance from Daniel Garnier-Moiroux. Daniel talks about the implications of passkeys in a Spring Security application.

  2. From Data Center to Cloud: Unleashing Innovation with Custom Apps (Atlassian)

    Atlassian's mission is to unleash the potential of every team, which means serving unique use cases and requirements. The Atlassian Platform allows teams to build, run, and scale custom apps in Atlassian's secure environment. Customers can easily meet new requirements by extending and connecting their existing tools.

  3. Open Sourcing DOS 4 (Scott Hanselman) code

    Microsoft releases source code to MS-DOS 4.00 under the MIT license. The code was written entirely in 8086 assembly code nearly 45 years ago.

  4. Llamafile’s progress, four months in (Mozilla) code

    Mozilla’s Innovation group launched the llamafile project late last year. Just last night, Justine Tunney shipped the v0.8 release of llama file. It includes not only support for the very latest open models, but also a number of big performance improvements for CPU inference.

  5. Graph-based metadata filtering for improving vector search in RAG applications (LangChain) code

    Tomaz Bratanic is a Graph ML expert at Neo4j, a graph database and analytics company. He explains how to use LangChain and OpenAI to filter documents based on specific criteria. The code is available on GitHub.

  6. Livestream: Django Trends for 2024 (Django)

    Django Developers Survey: 4,000 developers participated in the survey. Sarah Abdermane and Sarah Boyce will share insights from the Django community.

  1. TBM 284: Why Aren't We Talking About Continuous Improvement? (John Cutler)

    Inertia reigns supreme in everything but the smallest startups. Companies that practice continuous improvement are rare, and that's OK. It comes from empowered leaders.

  2. Node v22.0.0 (Current) (Node) code

    Highlights include require()ing ESM graphs, WebSocket client, updates of the V8 JavaScript engine, and more. Node.js 22 will enter long-term support (LTS) in October.

  3. Node.js 22 is now available! (Node) code

    The Node.js Project is excited to announce the release of Node.JS 22. Highlights include require()ing ES modules, a WebSocket client, updates of the V8 JavaScript engine, and more. Node. JS 22 will enter long-term support (LTS) in October, but until then, it will be the "Current" release for the next six months.

  4. Announcing LangSmith is now a transactable offering in the Azure Marketplace (LangChain)

    LangSmith is a unified DevOps platform for developing, collaborating, testing, and monitoring LLM applications. Moody’s, Elastic, Rakuten, and BCG rely on the platform to build high quality genAI applications that scale.

  5. JSR Is Not Another Package Manager (Deno) code

    The Node.io team has created JSR, a registry for distributing JavaScript and TypeScript modules. JSR is designed to complement the npm registry, not replace it. It is a registry, but not another client for the npm.

  6. How We Added Value to Elements Connect with Forge Custom Fields (Atlassian)

    Elements Connect is one of Elements' flagship applications, serving as a pivotal tool for seamlessly connecting and integrating data across various platforms within Jira. transitioning Elements Connect to the cloud was not easy. Navigating the technical constraints inherent in the cloud environment required us to adapt. Forge played a crucial role in seamlessly integrating Forge custom fields into the Jira issue creation view and improving integration in the editing view.

  7. What's Lazy Evaluation in Python? (Real Python) code

    Lazy evaluation is when Python doesn’t work out the values of an expression immediately. Instead, the values are returned at the point when they’re required in the program. Lazy evaluation can also be referred to as call-by-need. This delay of when the program evaluates an expression delays the use of resources.

  8. #458: Serverless Python in 2024 (Talk Python) podcast

    Made with in Portland, OR, USA.

  1. This Week in Spring - Tuesday, April 23rd, 2024 (Spring)

    This week in Spring is a busy, wonderful week for the Spring community.VMware offers training and certification to turbo-charge your progress. Tanzu Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat.

  2. Porting a cross-platform GUI application to Rust (Mozilla) code

    Crash reporter is a very important component of Firefox. It is integral in providing insight into the most visible bugs: those which crash the main process. It has long been stuck in a local maximum of “good enough’ and “scary to maintain” It features 3 individual GUI implementations, a binary blob produced by obsoleted Apple development tools, and no test suite.

  3. Weeknotes: Llama 3, AI for Data Journalism, llm-evals and datasette-secrets (Simon Wilison) code

    Llama 3 landed on Thursday. I updated a whole bunch of different plugins to work with it. I've also spun up two new projects which are still very much in the draft stage.

  4. Q&A: Promoting your app or game with Apple Search Ads (Apple)

    Apple Search Ads helps you drive discovery of your app or game on the App Store. To become certified, complete all of the Certification lessons (each takes between 10 and 20 minutes), then test your skills with a free exam.

  5. Apple Search Ads now available in Brazil and more Latin American markets (Apple)

    Apple Search Ads is now available in 70 countries and regions. Visit the Apple Search-Ads site and Q&A.

  6. Python Basics Exercises: Scopes (Real Python) code

    This video course is part of the Python Basics series, which accompanies Python Basics: A Practical Introduction to Python 3. Use IDLE to interact with Python throughout this course.

  7. DjangoCon US 2024 CFP Last Call (Django)

    DjangoCon US 2024 Call for Proposals (CFP) deadline is April 24, 2024 at 12 PM EDT. Submit your talk or tutorial before the clock runs out.

  8. Let loose. (Apple)

    Watch online at apple.com, on Apple TV, or on YouTube Live.

  9. Lessons from building an automated SDK pipeline (Cloudflare) code

    Cloudflare is now offering software development kits (SDKs) for Typescript, Go and Python. Instead of using a tool like curl or Postman to create a new zone in your account, you can use one of the SDKs in a language that you’re already comfortable with or that integrates directly into your codebase.

  10. Python Sequences: A Comprehensive Guide (Real Python)

    Interactive Quiz ⋅ 12 QuestionsBy Martin BreussIn this quiz, you’ll test your understanding ofPython sequences. The quiz contains 12 questions and there is no time limit.

  11. Announcing the Hookdeck SDK on JSR (Deno) code

    Hookdeck is an event gateway that simplifies managing events across a distributed architecture. Using Hookdeck via JSR provides a better developer experience with auto-generated documentation.

  12. AI Is Speaking In Tongues (Mat Dugan) code

    In his hometown, church membership was a given for middle-class people. Evangelical Christians often tried to lure families in with offers of youth groups. There were many warnings growing up into a different relationship with God.

  1. An open letter regarding the DjangoCon Europe CfP (Django)

    DjangoCon Europe Call for Proposals for organizers has been closed. The Django community has expressed anger and frustration over the closure. The community is looking for a way to continue hosting DjangoCon Europe.

  2. Empowering Development with FlowTestAI: Bridging APIs and LLMs for Enhanced Testing and Privacy (LangChain)
  3. Write Unit Tests for Your Python Code With ChatGPT (Real Python) code

    In this tutorial, you’ll learn the basics of using ChatGPT as an assistant for creating coherent unit tests for your Python projects using different test frameworks and libraries. To get the most out of this tutorial you should set up a ChatG PT account and know the basics. You should also know the Basics of how to test code in Python.

  4. Options for accessing Llama 3 from the terminal using LLM (Simon Wilison) code

    Llama 3 70b Instruct has taken joint 5th place on the LMSYS arena leaderboard, behind only Claude 3 Opus and some GPT-4s. The Llama 3 8b model is easy to run on a laptop, but it’s pretty limited in capability.

  5. Innovation through prompting (One Useful Thing)

    AI prompts are powerful tools that are remarkably easy to use. They can be wielded by anyone who can write or speak. This makes LLMs a good base on which to innovate. We have a new paper that tries to show one potential path.

  6. I Made a MacOS App for my PWA (Without AI) (David Bushell) code

    Despite Apple’s hostility, adding a PWA to my iPhone is still a workable experience. The “…” ellipsis icon in my screenshot above is Bartender. The network monitor is Little Snitch.

  1. The AI Revolution Will Not Be Monopolized: Behind the scenes (Explosion)

    A more in-depth look at the concepts and ideas behind my talk "The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs"

  2. Octopus Careers & Throwaway Stickies with Chris Butler (John Cutler) podcast

    Chris Butler is a staff product operations manager at GitHub. He's worked at companies like Google, Facebook, Cognizant, Kayak, and Waze. In this episode we talk about being a change agent, introducing new ways of working, embracing a persona external to your day job.

  1. Check out our newest developer activities (Apple)

    April 19, 2024: Learn about growing your business, elevating your app design, and preparing for the App Review process.

  2. Demystifying Screen Readers: Accessible Forms & Best Practices (CSS Tricks) codevideo

    This is the 3rd post in a small series we are doing on form accessibility. In this post we are going to look at using a screen reader when navigating a form, and also some best practices. We will be using Mac VO (VoiceOver) to test our forms.