# focus

Published articles for focus.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Focus and followthrough are the moat

DevFeed: [Focus and followthrough are the moat](<https://devfeed.tech/articles/focus-and-followthrough-are-the-moat-37621.md>)

Original publisher: [Read original article](<https://swizec.com/blog/focus-and-followthrough-are-the-moat>)

Author: hi@swizec.com (Swizec Teller)

Published: 2026-08-27T00:00:00Z

Content type: opinion

Language: en

Sources: [Swizec Teller](<https://devfeed.tech/sources/swizec-teller.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [SRE](<https://devfeed.tech/topics/sre.md>)

Tags: [development](<https://devfeed.tech/tags/development.md>), [focus](<https://devfeed.tech/tags/focus.md>), [production](<https://devfeed.tech/tags/production.md>), [projects](<https://devfeed.tech/tags/projects.md>), [sre](<https://devfeed.tech/tags/sre.md>), [team](<https://devfeed.tech/tags/team.md>)

### AI overview

An opinion piece about how a small startup team uses focus, sprint planning, prioritization, and regular stakeholder communication to finish work despite having more requests than capacity.

### Source excerpt

Because starting is easy and finishing is hard.

## Cutting the Noise.

DevFeed: [Cutting the Noise.](<https://devfeed.tech/articles/cutting-the-noise-40036.md>)

Original publisher: [Read original article](<https://dpereira.substack.com/p/cutting-the-noise>)

Author: David Pereira

Published: 2026-08-13T12:29:59Z

Content type: opinion

Language: en

Sources: [Untrapping Product Teams](<https://devfeed.tech/sources/untrapping-product-teams.md>)

Topics: [meetings](<https://devfeed.tech/topics/meetings.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [focus](<https://devfeed.tech/tags/focus.md>), [meetings](<https://devfeed.tech/tags/meetings.md>), [processes](<https://devfeed.tech/tags/processes.md>), [progress](<https://devfeed.tech/tags/progress.md>), [simplify](<https://devfeed.tech/tags/simplify.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This opinion article argues that professional growth can come from "adding by subtracting": questioning routines, processes, meetings, and other work practices that no longer serve their original goals. It identifies predictability and stability as factors that can reduce progress and innovation.

### Source excerpt

What can you stop doing now?

## More Accessible Focus Indicators with Compose

DevFeed: [More Accessible Focus Indicators with Compose](<https://devfeed.tech/articles/more-accessible-focus-indicators-with-compose-38521.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2026-04-30/more-accessible-focus-indicators-with-compose/>)

Author: Eevis Panula

Published: 2026-04-30T07:11:56.799000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Android](<https://devfeed.tech/topics/android.md>), [Web Content Accessibility Guidelines](<https://devfeed.tech/topics/web-content-accessibility-guidelines.md>), [keyboard](<https://devfeed.tech/topics/keyboard.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [focus](<https://devfeed.tech/tags/focus.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [web-content-accessibility-guidelines](<https://devfeed.tech/tags/web-content-accessibility-guidelines.md>)

### AI overview

A tutorial on creating more visible keyboard focus indicators in Jetpack Compose. It explains relevant WCAG Focus Appearance requirements, notes that Android's default ripple may be insufficiently visible, and introduces the Indication API for drawing custom indicators such as an underline on focused interactive components.

### Source excerpt

Last summer, I wrote a blog post about focus management with Compose. Ever since, I've had drafts of this post, but I didn't get to finalize it until now. The blog post is available in: It's All About (Accessibility) Focus And Compose. So, in this blog post, we're talking about focus indicators and how to make them more accessible with Compose. But let's first talk about focus indicators in general. Focus Indicators Focus indicators are, as the name suggests, indicators that show where keyboard focus currently is in the UI. They need to be visible so that keyboard and keyboard-emulating device users can navigate around the app effortlessly. An important thing to note is that the focus indicator I'm talking about here is not for the screen reader (e.g., TalkBack) focus. That is handled on the system level. Web Content Accessibility Guidelines (the standard behind accessibility legislation and used with apps as well, despite the name) has some requirements for accessible focus indicators. Per SC 2.4.13 Focus Appearance, the focus indicator needs to be either User agent's (Android system) default styles At least 2 pixels thick and has a contrast ratio of at least 3:1 between the same pixels of focused and unfocused states. Android's default focus indicator is the ripple, which isn't very visible. Technically, it would pass, but if you want to make the application accessible, you'll need to improve the visibility of the focus indicator. Let's next discuss one way to build more visible (and thus, more accessible) focus indicators with Compose. Building More Accessible Focus Indicators with Compose There are several ways of creating the focus indicators. You can, for example, add a border based on the focused state, as Appt.org suggests in their code snippets: Accessibility focus indicator in Jetpack Compose, but if you want anything more complex, you'll want to turn to Indication API. Indication API with a DrawModifierNode can be used to draw complex focus indicators. In

## Managing an Engineer's Week as a Queueing System

DevFeed: [Managing an Engineer's Week as a Queueing System](<https://devfeed.tech/articles/your-week-is-a-queueing-system-and-you-are-running-it-at-100-utilization-39553.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/01-time-management-software-engineering/>)

Author: hello@ankit-rana.com

Published: 2026-03-15T00:00:00Z

Content type: opinion

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [queueing theory](<https://devfeed.tech/topics/queueing-theory.md>), [scheduling](<https://devfeed.tech/topics/scheduling.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [email](<https://devfeed.tech/tags/email.md>), [focus](<https://devfeed.tech/tags/focus.md>), [minutes](<https://devfeed.tech/tags/minutes.md>), [notifications](<https://devfeed.tech/tags/notifications.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [queueing-theory](<https://devfeed.tech/tags/queueing-theory.md>), [scheduling](<https://devfeed.tech/tags/scheduling.md>), [servers](<https://devfeed.tech/tags/servers.md>), [slack](<https://devfeed.tech/tags/slack.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [system](<https://devfeed.tech/tags/system.md>), [time-management](<https://devfeed.tech/tags/time-management.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

The article argues that software engineers' schedules behave like queueing systems: near-total utilization increases waiting time, while interruptions evict working context. It recommends maintaining schedule headroom, batching communications, and limiting work in progress.

### Source excerpt

An engineer's week behaves like a queueing system: book yourself at 100% utilization and the wait time for anything new goes vertical, exactly as it does for a server. The fixes are the ones we already use in systems: keep headroom, coalesce interrupts instead of taking them one by one, cap work in progress because Little's law applies to you, and stop letting urgent-but-small tasks hold the lock while important work starves.

## Increase Engineering Productivity by 50% Through Focus and Flow

DevFeed: [Increase Engineering Productivity by 50% Through Focus and Flow](<https://devfeed.tech/articles/increase-engineering-productivity-by-50-through-focus-and-flow-39920.md>)

Original publisher: [Read original article](<https://mende.io/blog/increase-engineering-productivity-by-50-through-focus-and-flow/>)

Author: tobi@techunicorn.builders (Tobias Mende)

Published: 2024-06-01T05:00:00Z

Content type: opinion

Language: en

Sources: [Tobias Mende](<https://devfeed.tech/sources/tobias-mende.md>)

Topics: [developer-productivity](<https://devfeed.tech/topics/developer-productivity.md>), [code productivity](<https://devfeed.tech/topics/code-productivity.md>), [pair\_programming](<https://devfeed.tech/topics/pair-programming.md>), [context](<https://devfeed.tech/topics/context.md>), [meetings](<https://devfeed.tech/topics/meetings.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [real-time](<https://devfeed.tech/topics/real-time.md>)

Tags: [collaboration](<https://devfeed.tech/tags/collaboration.md>), [collaboration-communication-continuous-deployment-developer-experience-developer-productivity-e](<https://devfeed.tech/tags/collaboration-communication-continuous-deployment-developer-experience-developer-productivity-e.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [engineering-productivity](<https://devfeed.tech/tags/engineering-productivity.md>), [flow](<https://devfeed.tech/tags/flow.md>), [focus](<https://devfeed.tech/tags/focus.md>), [pair-programming](<https://devfeed.tech/tags/pair-programming.md>), [real-time](<https://devfeed.tech/tags/real-time.md>)

### AI overview

This article discusses how focus and flow affect developer productivity and presents practical organizational ideas for improving them. It emphasizes collaboration, team or pair programming, reducing distractions and context switching, real-time reviews, and useful documentation.

### Source excerpt

Increase Engineering Productivity by 50% Through Focus and Flow Creating an environment where developers can maintain focus and achieve flow can lead to a 50% increase in productivity, as research suggests. But how do we create such an environment?

## 11 Aspects Most Startups Get Wrong About OKRs and How to Fix it

DevFeed: [11 Aspects Most Startups Get Wrong About OKRs and How to Fix it](<https://devfeed.tech/articles/11-aspects-most-startups-get-wrong-about-okrs-and-how-to-fix-it-39866.md>)

Original publisher: [Read original article](<https://mende.io/blog/11-aspects-most-startups-get-wrong-about-okrs-and-how-to-fix-it/>)

Author: tobi@techunicorn.builders (Tobias Mende)

Published: 2024-02-24T05:00:00Z

Content type: opinion

Language: en

Sources: [Tobias Mende](<https://devfeed.tech/sources/tobias-mende.md>)

Topics: [Framework](<https://devfeed.tech/topics/framework.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Google](<https://devfeed.tech/topics/google.md>), [intel](<https://devfeed.tech/topics/intel.md>)

Tags: [alignment](<https://devfeed.tech/tags/alignment.md>), [andy-grove](<https://devfeed.tech/tags/andy-grove.md>), [article](<https://devfeed.tech/tags/article.md>), [engineering-leadership-goal-setting-leadership-product-management-engineering-excellence](<https://devfeed.tech/tags/engineering-leadership-goal-setting-leadership-product-management-engineering-excellence.md>), [focus](<https://devfeed.tech/tags/focus.md>), [framework](<https://devfeed.tech/tags/framework.md>), [google](<https://devfeed.tech/tags/google.md>), [growth](<https://devfeed.tech/tags/growth.md>), [intel](<https://devfeed.tech/tags/intel.md>), [mistakes](<https://devfeed.tech/tags/mistakes.md>), [objectives](<https://devfeed.tech/tags/objectives.md>), [organization](<https://devfeed.tech/tags/organization.md>), [progress](<https://devfeed.tech/tags/progress.md>), [startups](<https://devfeed.tech/tags/startups.md>), [tool](<https://devfeed.tech/tags/tool.md>)

### AI overview

This article explains what OKRs are, defines objectives, key results, and initiatives, and discusses why startups may implement OKRs unsuccessfully. It recommends first identifying the problems an organization wants to solve and adjusting the approach to fit its needs.

### Source excerpt

11 Aspects Most Startups Get Wrong About OKRs and How to Fix it Objectives and key results (OKRs) can be a powerful tool. But as with any framework or methodology out there, just applying it as others do will likely not yield the best results. It can even harm your organization.

## HTML inert property and React fallback

DevFeed: [HTML inert property and React fallback](<https://devfeed.tech/articles/html-inert-property-and-react-fallback-37283.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/html-inert-property/>)

Author: Stanko

Published: 2023-12-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [HTML](<https://devfeed.tech/topics/html.md>), [React](<https://devfeed.tech/topics/react.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [aria](<https://devfeed.tech/tags/aria.md>), [browser](<https://devfeed.tech/tags/browser.md>), [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [focus](<https://devfeed.tech/tags/focus.md>), [html](<https://devfeed.tech/tags/html.md>), [mutation](<https://devfeed.tech/tags/mutation.md>), [react](<https://devfeed.tech/tags/react.md>), [tabbing](<https://devfeed.tech/tags/tabbing.md>)

### AI overview

This tutorial explains how the HTML inert property disables user interaction, keyboard tabbing, and screen-reader access for an element. It also presents a React fallback that uses tabindex changes and a mutation observer to support older browsers.

### Source excerpt

HTML inert is a relatively new property, but it is supported in all major browsers since April this year. When you set inert on an element, the browser will ignore all user events on it, including tabbing into elements. It will also hide it from screen readers. I like to think of it as a "reversed focus trap". But we can use it to create focus traps for modals by setting inert on the main content. This div has inert property set and if your browser supports it, you won't be able to interact with the button and link below. You can't click meNor me! React fallback component # Before I learned about inert, I built a relatively simple component to achieve the same result. Now I prefer to use the native solution, but on most projects, we still have to support older browsers. My approach is to handle it in the wrapper component, which finds all focusable elements and sets tabindex="-1". After mounting, the mutation observer starts listening and re-sets the tabindex when content is changed. The wrapper itself has aria-hidden="true", which hides it from screen readers. You can try it out on CodePen and see the source code below: const focusableElementsSelector = [ "a[href]", "input", "select", "textarea", "button", "audio[controls]", "video[controls]", "details > summary:first-of-type", "details", "[contenteditable]:not([contenteditable=\"false\"])", "[tabindex]:not([tabindex=\"-1\"])" ].join(", "); const addTabIndex = ($wrapper) => { $wrapper.querySelectorAll(focusableElementsSelector).forEach(($element) => { $element.setAttribute("tabindex", -1); }); }; const removeTabIndex = ($wrapper) => { $wrapper.querySelectorAll(focusableElementsSelector).forEach(($element) => { $element.removeAttribute("tabindex"); }); }; const Inert = ({ enabled, children, ...props }) => { const wrapperRef = useRef(null); const observerRef = useRef( new MutationObserver(() => addTabIndex(wrapper.current)) ); useEffect(() => { if (enabled) { if (wrapperRef.current) { // Add tabindex addTabIndex(wrap

## Improving Developer Experience, Level 3: The Triad of Clarity, Focus, and Flow

DevFeed: [Improving Developer Experience, Level 3: The Triad of Clarity, Focus, and Flow](<https://devfeed.tech/articles/improving-developer-experience-level-3-the-triad-of-clarity-focus-and-flow-39917.md>)

Original publisher: [Read original article](<https://mende.io/blog/improving-developer-experience-level-3-the-triad-of-clarity-focus-and-flow/>)

Author: tobi@techunicorn.builders (Tobias Mende)

Published: 2023-08-26T04:00:00Z

Content type: opinion

Language: en

Sources: [Tobias Mende](<https://devfeed.tech/sources/tobias-mende.md>)

Topics: [devex](<https://devfeed.tech/topics/devex.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [Development](<https://devfeed.tech/topics/development.md>), [iteration](<https://devfeed.tech/topics/iteration.md>)

Tags: [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [developer-experience-developer-productivity-engineering-excellence](<https://devfeed.tech/tags/developer-experience-developer-productivity-engineering-excellence.md>), [engineering-excellence](<https://devfeed.tech/tags/engineering-excellence.md>), [flow](<https://devfeed.tech/tags/flow.md>), [focus](<https://devfeed.tech/tags/focus.md>), [loops](<https://devfeed.tech/tags/loops.md>), [sync](<https://devfeed.tech/tags/sync.md>)

### AI overview

This article examines clarity, focus, and flow as connected dimensions of developer experience. It discusses purpose-driven development, defined outcomes, iterative feedback, and autonomy as ways to improve engineering work.

### Source excerpt

Improving Developer Experience, Level 3: The Triad of Clarity, Focus, and Flow Last week, we delved deep into "Belonging, Collaboration, and Communication". Further up in the Maslow Pyramid of DevEx, we have the factors that affect focus, clarity, and flow. This article will explore how we can improve those factors.

## Improving Android Accessibility with Modifiers in Jetpack Compose

DevFeed: [Improving Android Accessibility with Modifiers in Jetpack Compose](<https://devfeed.tech/articles/improving-android-accessibility-with-modifiers-in-jetpack-compose-38457.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2023-07-11/improving-android-accessibility-with-modifiers-in-jetpack-compose/>)

Author: Eevis Panula

Published: 2023-07-11T05:48:08.009000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>), [android-development](<https://devfeed.tech/topics/android-development.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [android](<https://devfeed.tech/tags/android.md>), [assistive-technology](<https://devfeed.tech/tags/assistive-technology.md>), [focus](<https://devfeed.tech/tags/focus.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [modifiers](<https://devfeed.tech/tags/modifiers.md>), [visibility](<https://devfeed.tech/tags/visibility.md>)

### AI overview

A tutorial on using Jetpack Compose modifiers to improve Android app accessibility. It explains how modifiers can add accessibility information, adjust behavior and semantics, reduce unnecessary tab stops, provide focus indicators, improve touch feedback, and increase touch target sizes. The article also emphasizes testing with different assistive technologies.

### Source excerpt

The other day, I was doing some accessibility fixes on our codebase. I came across a switch that didn't have a label associated with it, meaning screen reader users would need to do a bit of guessing to get the information on what they were toggling. I wanted to fix that and started researching. At one point, I was going through the list of modifiers for composable components and noticed that many could help make the app more accessible. I got so excited! And I wanted to share some of these modifiers with you, so here we are. I'm going to go through these modifiers: toggleable selectable clickable magnifier But first, let's talk a bit about modifiers in general and what they are. What are Modifiers? As the Android Developers site defines modifiers: Modifiers allow you to decorate or augment a composable. Modifiers let you do these sorts of things: Change the composable's size, layout, behavior, and appearance Add information, like accessibility labels Process user input Add high-level interactions, like making an element clickable, scrollable, draggable, or zoomable (Source: Android Developers: Compose modifiers) So they are a way to modify composables' looks, behavior, and semantics. They're used a lot in modern Android development with Jetpack Compose, so if you've ever tried Compose, you've probably come across them. As the modifiers can do many things, we can use them for improving accessibility as well. Let's talk about that more in the next section. Modifiers for Accessibility There are many use cases for different modifiers to improve the accessibility of our apps. For example, with modifiers, we can reduce the amount of tab stops for users that use switch devices, hardware keyboards, or screen readers, or we can add more semantic information for assistive technology users in general. We can add visual cues such as focus indicators or improve the visibility and feedback of touch interactions. A good example is what we will do later in this post by increasing

## CSS only floating labels

DevFeed: [CSS only floating labels](<https://devfeed.tech/articles/css-only-floating-labels-37257.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/css-only-floating-input-labels/>)

Author: Stanko

Published: 2023-07-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [CSS](<https://devfeed.tech/topics/css.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Code](<https://devfeed.tech/topics/code.md>), [Demo](<https://devfeed.tech/topics/demo.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [css](<https://devfeed.tech/tags/css.md>), [demo](<https://devfeed.tech/tags/demo.md>), [focus](<https://devfeed.tech/tags/focus.md>), [html](<https://devfeed.tech/tags/html.md>), [input](<https://devfeed.tech/tags/input.md>), [safari](<https://devfeed.tech/tags/safari.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

This tutorial explains how to use the CSS :placeholder-shown pseudo-class and :not() to detect whether an input is empty or has a value without JavaScript. It demonstrates floating labels and conditionally displayed clear buttons, and notes a Safari requirement for the placeholder attribute.

### Source excerpt

I recently learned about the pseudo CSS class :placeholder-shown. Obviously, it is a class that is added only when input placeholder is shown. But what that also means is that the input is empty: /* Input is empty */ input:placeholder-shown By negating it with :not() we can detect if the input has value: /* Input has value */ input:not(:placeholder-shown) I created a demo that uses these two CSS snippets to highlight input's current state. There is no JavaScript involved. Input has value Input is empty Focused Real world use cases # I recently used this to conditionally display a clear button next to an input. But it can also be used to create floating labels. However, it's important to note that anything you want to style based on the input's state needs to be positioned after the input element. Floating labels # For a floating label, the HTML structure should look something like this: <input /> <label>Floating label</label> The floating label needs to be repositioned in two scenarios: when the input is focused and when it has a value. /* Input has value */ input:focus + label, input:not(:placeholder-shown) + label { /* Move the label above the button and scale it down */ transform: translateY(-100%) scale(0.75); } Clear button # Similarly, we'll put the clear button after the input: <input /> <button>Clear</button> and hide it when input is empty: /* Input is empty */ input:placeholder-shown + button { /* Hide the clear button */ display: none; } Demo # Focus an input to make its label float, and type something to make the clear button appear. Name Email You can also play with the code on CodePen. Safari gotcha # Be aware that in Safari the :placeholder-shown pseudo class will only be added if the input has the placeholder attribute explicitly defined. Which means that we have to define it, but if we don't need the placeholder, we can easily hide it using CSS: input::placeholder { color: transparent; }

## 7 Tips for more Deep Work for Individuals

DevFeed: [7 Tips for more Deep Work for Individuals](<https://devfeed.tech/articles/7-tips-for-more-deep-work-for-individuals-39868.md>)

Original publisher: [Read original article](<https://mende.io/blog/7-tips-for-more-deep-work-for-individuals/>)

Author: tobi@techunicorn.builders (Tobias Mende)

Published: 2023-03-18T06:00:00Z

Content type: tutorial

Language: en

Sources: [Tobias Mende](<https://devfeed.tech/sources/tobias-mende.md>)

Topics: [notifications](<https://devfeed.tech/topics/notifications.md>), [Slack](<https://devfeed.tech/topics/slack.md>)

Tags: [culture-deep-work-employee-happiness-practices-developer-productivity-engineering-excellence](<https://devfeed.tech/tags/culture-deep-work-employee-happiness-practices-developer-productivity-engineering-excellence.md>), [devices](<https://devfeed.tech/tags/devices.md>), [focus](<https://devfeed.tech/tags/focus.md>), [headphones](<https://devfeed.tech/tags/headphones.md>), [notifications](<https://devfeed.tech/tags/notifications.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

This article presents seven tips for individuals to create more deep-work and focus time. The documented advice includes enabling Do-not-Disturb on devices, reducing environmental distractions, and signaling focused time to others through tools such as Slack or visible status cues.

### Source excerpt

7 Tips for more Deep Work for Individuals In my last article, I highlighted the importance of deep work to achieve high productivity and quality of work. Today, I will follow up with seven tips for more deep work as an individual.

## My Advice to a Developer New to Accessibility

DevFeed: [My Advice to a Developer New to Accessibility](<https://devfeed.tech/articles/my-advice-to-a-developer-new-to-accessibility-38446.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2022-07-22/my-advice-to-a-developer-new-to-accessibility/>)

Author: Eevis Panula

Published: 2023-01-03T08:57:33.125000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [HTML](<https://devfeed.tech/topics/html.md>), [keyboard](<https://devfeed.tech/topics/keyboard.md>), [markup](<https://devfeed.tech/topics/markup.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [advice](<https://devfeed.tech/tags/advice.md>), [developer](<https://devfeed.tech/tags/developer.md>), [development](<https://devfeed.tech/tags/development.md>), [element](<https://devfeed.tech/tags/element.md>), [elements](<https://devfeed.tech/tags/elements.md>), [focus](<https://devfeed.tech/tags/focus.md>), [html](<https://devfeed.tech/tags/html.md>), [html-elements](<https://devfeed.tech/tags/html-elements.md>), [input](<https://devfeed.tech/tags/input.md>), [interaction](<https://devfeed.tech/tags/interaction.md>), [interactive](<https://devfeed.tech/tags/interactive.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [learning](<https://devfeed.tech/tags/learning.md>), [markup](<https://devfeed.tech/tags/markup.md>)

### AI overview

This beginner-oriented accessibility article recommends focusing on progress rather than perfection and introduces semantic HTML, keyboard navigation, and listening to people with disabilities. It explains that semantic elements communicate meaning to browsers and developers and support appropriate interaction, while a div styled as a button may work only for mouse users and may not be focusable or keyboard-accessible.

### Source excerpt

Learning about accessibility for the first time can feel overwhelming. You start reading, and at some point, it hits you: There is so much to learn! And if you're like me and feel that it's your responsibility to make the things you create accessible, that might even make you feel anxious. And yes, there is a lot to learn regarding accessibility. But you don't need to know everything at once. As Meryl Evans reminds us in her tweet (and a blog post the tweet links to), it's about progress over perfection: https://twitter.com/merylkevans/status/1547635550466674692 So, here are some things I wish I had known when I first started learning accessibility. Heck, I wish I had known these things when I started learning web development! I'll share semantic HTML, keyboard navigation, and listening to people with disabilities. Learn Semantic HTML and Use It So, first thing: Learn semantic HTML. But what does it mean? Semantic HTML, or semantic markup, describes its meaning to the browser and developer in a human- and machine-readable way. So, with semantic elements, a human will know what the HTML element is about, and the browser knows what it should render and how it should behave when a user interacts with it. Here's an example: <button onClick={...}>I'm an honest button</button> That button uses a semantic button-element. When it does so, the browser knows what it should do when the user either clicks or activates it with a keyboard or other input device. Here's an example of a non-semantic "button": <div className="button" onClick={...}> I look like a button </div> So, this "button" made out of div looks like a button and even has the onClick-handler. So, wouldn't a human recognize it as a button? Well, yes and no. It depends on the human. You see, this "button" works only for mouse users. As div is not an interactive element by nature, it doesn't handle interaction the same way as, for example, a button-element. When using a semantic button-element, that onClick-event pro

## Focus Weeks: How to collaboratively crack difficult problems with joy

DevFeed: [Focus Weeks: How to collaboratively crack difficult problems with joy](<https://devfeed.tech/articles/focus-weeks-how-to-collaboratively-crack-difficult-problems-with-joy-39906.md>)

Original publisher: [Read original article](<https://mende.io/blog/focus-weeks/>)

Author: tobi@techunicorn.builders (Tobias Mende)

Published: 2021-12-18T12:32:00Z

Content type: opinion

Language: en

Sources: [Tobias Mende](<https://devfeed.tech/sources/tobias-mende.md>)

Topics: [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [collaboration-culture-ensemble-programming-team-programming-developer-productivity-engineering](<https://devfeed.tech/tags/collaboration-culture-ensemble-programming-team-programming-developer-productivity-engineering.md>), [complex](<https://devfeed.tech/tags/complex.md>), [culture](<https://devfeed.tech/tags/culture.md>), [focus](<https://devfeed.tech/tags/focus.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [team](<https://devfeed.tech/tags/team.md>)

### AI overview

The article describes focus weeks as a collaborative practice for helping software teams concentrate on difficult or complex topics. It explains how interruptions, procrastination, limited focus time, and unavailable experts can make this work harder, drawing on experiences at BRYTER.

### Source excerpt

Focus Weeks: How to collaboratively crack difficult problems with joy Focus weeks are a tool for cracking difficult or complex topics as a team while fostering team collaboration and improving team culture.

## Catching the blur event on an element and its children

DevFeed: [Catching the blur event on an element and its children](<https://devfeed.tech/articles/catching-the-blur-event-on-an-element-and-its-children-37248.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/catching-the-blur-event-on-an-element-and-its-children/>)

Author: Stanko

Published: 2021-09-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [React Component](<https://devfeed.tech/topics/react-component.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [component](<https://devfeed.tech/tags/component.md>), [focus](<https://devfeed.tech/tags/focus.md>), [framework](<https://devfeed.tech/tags/framework.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [react](<https://devfeed.tech/tags/react.md>), [react-component](<https://devfeed.tech/tags/react-component.md>)

### AI overview

A tutorial explains how to handle blur events on a parent element with focusable children. It uses requestAnimationFrame to wait for the next focus target, then checks whether document.activeElement remains inside the parent before running blur logic such as closing a menu.

### Source excerpt

Recently I implemented a fly out menu in React, and stumbled on the following problem - I had to catch a blur event on the menu, but it had multiple focusable children. When user is tabbing between these menu items, blur event is triggered every time on the parent, followed by the focus event on the next item. As I wanted to close the menu on blur, this would close it before user was able to get to the next menu item. Solution is fairly simple and it is not React exclusive - it can be used with any other framework or vanilla JavaScript. The flow goes something like this: Listen to a blur event on the parent element (in my case it was the menu). This will catch blur event on all of its children too. In the handler, give browser time to focus the next element (by using requestAnimationFrame). Check if the newly focused element is in our parent element. If it is, do nothing, as focus hasn't exited the parent yet. If it is not, we left the parent element completely and it is safe to do our blur logic (in my case, it was closing the menu). Code looks like this: const handleBlur = (e) => { const currentTarget = e.currentTarget; // Give browser time to focus the next element requestAnimationFrame(() => { // Check if the new focused element is a child of the original container if (!currentTarget.contains(document.activeElement)) { // Do blur logic here! } }); }; React component # I pulled out the logic and created a small React component: const ChildrenBlur = ({ children, onBlur, ...props }) => { const handleBlur = useCallback( (e) => { const currentTarget = e.currentTarget; // Give browser time to focus the next element requestAnimationFrame(() => { // Check if the new focused element is a child of the original container if (!currentTarget.contains(document.activeElement)) { onBlur(); } }); }, [onBlur] ); return ( <div {...props} onBlur={handleBlur}> {children} </div> ); }; and usage is pretty straight forward: <ChildrenBlur onBlur={() => { doSomethingCoolOnBlur() }} > <bu

## A product management blueprint

DevFeed: [A product management blueprint](<https://devfeed.tech/articles/a-product-management-blueprint-41175.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2015/02/18/A-product-management-blueprint/>)

Author: Map

Published: 2015-02-18T20:55:56Z

Content type: opinion

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Product Management](<https://devfeed.tech/topics/product-management.md>), [.NET](<https://devfeed.tech/topics/net.md>)

Tags: [delivery](<https://devfeed.tech/tags/delivery.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [focus](<https://devfeed.tech/tags/focus.md>), [opinion](<https://devfeed.tech/tags/opinion.md>), [product-management](<https://devfeed.tech/tags/product-management.md>), [projects](<https://devfeed.tech/tags/projects.md>), [startups](<https://devfeed.tech/tags/startups.md>), [teams](<https://devfeed.tech/tags/teams.md>), [trust](<https://devfeed.tech/tags/trust.md>), [velocity](<https://devfeed.tech/tags/velocity.md>)

### AI overview

The author presents a product management blueprint for startups and new teams, centered on building trust with teammates, improving shipping velocity, delivering iteratively, reducing scope, and eventually prioritizing work that has meaningful impact.

### Source excerpt

I find myself having more conversations with startups - both small and large - about product management. I've blogged about some of the tools in my chest here but I haven't talked much about my "blueprint" for product management, which I find myself laying out in many conversations over coffee. What follows is this process I've used a few times over with new teams to get product and engineering moving together, shipping in a predictable manner, and tackling bigger and more strategic projects. Trust I need to know how to work with my team, what their working styles are, and how we interact. This starts by simply interacting - specifically, outside of the office. I heard a similar opinion recently from Chris Fry (who ran engineering at Salesforce and Twitter) when he remarked something to the effect of: "you can tell a good PM from a bad one based on if he goes to drinks with his team." Without getting hung up on whether it's beers or coffee, it's more about socialization with your team and time outside the office. My personal approach: expect a dinner invite over to my place when I take on running product for a new team. Velocity Once you've started to build some rapport, it's time to get down to business. If being able to quickly commit and ship something isn't a problem for you, then it's easy to just assume this is working. In reality most teams I encounter that need PM support don't have shipping nailed down. You probably already know if you fall into that category of feeling like you can commit and ship vs. not, so if you're not able to do that a few tips: There's some projects that everyone wants to ship that's been tried over and over, don't tackle that first. Shipping something is better than nothing. It doesn't have to be the right thing. Sometimes you don't have to ship something to get velocity, you can launch things you already have Kill scope Test things earlier and more iteratively, the more you can validate or try something without requiring a large in

## Why businesses need a longer-term focus than quarterly goals

DevFeed: [Why businesses need a longer-term focus than quarterly goals](<https://devfeed.tech/articles/nearsighted-business-41040.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2008/06/05/Nearsighted-Business/>)

Author: Map

Published: 2008-06-06T01:26:27Z

Content type: opinion

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Risk](<https://devfeed.tech/topics/risk.md>), [ibm](<https://devfeed.tech/topics/ibm.md>)

Tags: [business](<https://devfeed.tech/tags/business.md>), [ceo](<https://devfeed.tech/tags/ceo.md>), [company](<https://devfeed.tech/tags/company.md>), [employees](<https://devfeed.tech/tags/employees.md>), [focus](<https://devfeed.tech/tags/focus.md>), [growth](<https://devfeed.tech/tags/growth.md>), [hiring](<https://devfeed.tech/tags/hiring.md>), [ibm](<https://devfeed.tech/tags/ibm.md>), [limits](<https://devfeed.tech/tags/limits.md>), [risk](<https://devfeed.tech/tags/risk.md>)

### AI overview

The article argues that businesses often prioritize quarterly or yearly targets over long-term goals, leading to poorly timed hiring freezes and rushed recruitment. It contrasts this with smaller companies' more constrained spending decisions and questions whether private ownership enables a longer-term focus.

### Source excerpt

Adobe's former CEO, Bruce Chizen, when asked 'What advice do you have for new/young public companies?', gave a response of 'Go private'. While partially a joke he went on to elaborate something that many businesses seem to miss on. The main idea is that businesses are very nearsighted in their focus, they look at quarterly goals and in some cases yearly, but not where they want to be in 10 years. When companies become worried that head count is high they simply freeze hiring across the board without thinking of its ramifications. Good people, well great people are truly hard to find, and when a company enforces a blanket hiring freeze they miss out on those few great people that they truly need to grow. Meanwhile when they decide they have bandwidth for 1000 new employees they open the flood gates and let the first 1000 that can spell their name correctly in, because they can. This short term focus in the long run greatly limits the ability of what a company can achieve. In contrast a smaller company that is actually much more at risk of dying seems to have a better understanding of what their approach should be. While they may be understaffed and overworked, they firmly understand that they only have so many funds and therefore make wiser decisions when using them. The characteristics of the larger business and their short sighted focus leads to the cyclical performance that many experience over a few years, rather than a very steady growth they would like to maintain, and often leads to their end. A prime example would be IBM that laid off so many of their more talented people to lower their numbers years ago. As a result they lost their best workers and had many unexperienced individuals in there when they began hiring again. They are still working to catch back up to where they once were in the IT industry... In part I wonder if being a private entity is really the only way to have the long term focus and not worry about quarterly earnings. Personally I have never