<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://dnikub.dev">
  <title>Daniela Kubesch</title>
  <subtitle>My latest blog posts on accessibility, frontend development, inclusive design and anything else that interests me.</subtitle>
  <link href="https://dnikub.dev/feed.xml" rel="self"/>
  <link href="https://dnikub.dev"/>
  <updated>2026-04-03T12:40:19Z</updated>
  <id>https://dnikub.dev</id>
  <author>
    <name>Daniela Kubesch</name>
    <email>hey@dnikub.dev</email>
  </author>
  <entry>
    <title>PSA: Stop using the title attribute as tooltip!</title>
    <link href="https://dnikub.dev/blog/2024/htmHell-advent/"/>
    <updated>2024-12-04T00:00:00Z</updated>
    <id>https://dnikub.dev/blog/2024/htmHell-advent/</id>
    <content xml:lang="en" type="html"></content>
  </entry>
  <entry>
    <title>My year in review – 2023</title>
    <link href="https://dnikub.dev/blog/2023/year-review-2023/"/>
    <updated>2023-12-31T00:00:00Z</updated>
    <id>https://dnikub.dev/blog/2023/year-review-2023/</id>
    <content xml:lang="en" type="html">&lt;p class=&quot;text-base mt-0&quot;&gt;&lt;time datetime=&quot;2023-12-31&quot;&gt;December 31, 2023&lt;/time&gt; | 8min read&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;I thought it would be a good idea to end this year by reflecting on the goals I wrote down in my &lt;a href=&quot;https://dnikub.dev/blog/2022/year-review-2022&quot;&gt;blog post from last year&lt;/a&gt;. Let&#39;s start by looking at the plans I set for myself for 2023.&lt;/p&gt;
&lt;h2&gt;Write (and finish) my master&#39;s thesis&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;I want to get my degrees, aka. finish my double master&#39;s.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I started working on my thesis back in March 2023, but I haven&#39;t finished it yet. As the first person in my department to pursue a double degree, I&#39;ve faced a lot of administrative hurdles that have caused some delays.
Despite that, I&#39;m pleased with the extensive research I&#39;ve conducted for my thesis. Specifically, I&#39;ve been looking into &lt;strong class=&quot;text-highlight&quot;&gt;the impact of web accessibility overlays on the user experience and usability of individuals with visual impairments&lt;/strong&gt;. In addition to a technical analysis, I conducted a user study with 21 participants. I gained a lot of knowledge during the process and look forward to publishing my findings. So, this goal will be carried forward to 2024.&lt;/p&gt;
&lt;h2&gt;Move to a different country&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Preferably to Portugal or Spain. My mental health and overall well-being need sunny days and warm weather (sorry, Sweden). Together with my partner. No more long-distance relationship.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In late 2022, I relocated from Sweden back to Vienna to live with my partner. Although we initially intended to stay in Vienna for a while, we ultimately decided to move to Spain. We sold almost all of our belongings, took the remaining 15 boxes and shipped them to Barcelona. Now the two of us, along with our 15 boxes, are in a 35-square-meter apartment trying to get settled. Despite being EU citizens, the bureaucratic process has proven to be more complex and time-consuming than anticipated. However, I am confident that we will be fully settled in Barcelona before the summer of 2024.&lt;/p&gt;
&lt;div class=&quot;sm:flex w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20231231/barcelona-2.jpg&quot; alt=&quot;Me, a young woman with shoulder-length blonde hair, wearing sunglasses, a beige hoodie and jeans. I am standing at the beach and looking into the distance.&quot; class=&quot;sm:w-1/3 mb-4 sm:mb-0 sm:pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20231231/barcelona-4.jpg&quot; alt=&quot;A wooden jetty going into the sea, surrounded by trees.&quot; class=&quot;sm:w-1/3 mb-4 sm:mb-0 sm:pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20231231/barcelona-3.jpg&quot; alt=&quot;Typical white Swedish wooden houses.&quot; class=&quot;sm:w-1/3&quot;&gt;
&lt;/div&gt;
&lt;p&gt;I don&#39;t know how long we are gonna stay here. But for now, it is the right thing for us. Sometimes it is hard. You miss family and friends, can&#39;t be at every gathering and making new friends as an adult is challenging. But I enjoy the warm weather, the kind and welcoming people, the food and the overall vibe. Based on my experience, I have noticed that in Spain, work is not as central to people&#39;s identity as it is in Austria and Germany. Working overtime and one&#39;s salary are not defining factors. In fact, I was once told that it was unusual to ask about someone&#39;s job during small talk. People here are more interested in getting to know your personality. I actually like that.&lt;/p&gt;
&lt;h2&gt;Stepping out of my comfort zone&lt;/h2&gt;
&lt;p&gt;As if moving to different country isn&#39;t enough, I also stepped out of my comfort zone and attended the &lt;a href=&quot;https://beyondtellerrand.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;beyond tellerrand conference (btconf)&lt;/a&gt; in Düsseldorf, Germany, on my own, without knowing anyone there. It turned out to be one of the best conference experiences I&#39;ve ever had! The majority of the talks were fantastic,  covering a good mix of design, development, and art. Secondly, many attendees return each year and describe the event as a family gathering. While it may require some initiative to start a conversation, you will be greeted with open arms once you do. I had the pleasure of meeting several wonderful people whom I still keep in touch with. I look forward to attending again in 2024.&lt;/p&gt;
&lt;div class=&quot;sm:flex w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20231231/bt-conf-3.jpg&quot; alt=&quot;Croquettes on a mushroom sauce. Served with a bottle of white wine.&quot; class=&quot;sm:w-1/2 mb-4 sm:mb-0 sm:pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20231231/bt-conf-2.jpg&quot; alt=&quot;Vegan inside-out maki rolls on a plate.&quot; class=&quot;sm:w-1/2&quot;&gt;
&lt;/div&gt;
&lt;h2&gt;Introducing a &amp;quot;passion day&amp;quot;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;I want to prioritise focusing on my interests. I always have so many university tasks that I don&#39;t find the time to, for example, just read some accessibility blog posts. That must change.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Well, that didn&#39;t really work out. Now that I am reading it again, it sounds like an excellent idea, but it somehow got lost. When thinking about 2023, I didn&#39;t draw strict lines between where (thesis) work starts and where it ends. It is all smushed together. There are no work-free weekends, no evenings; I mean, you could always work, right?&lt;/p&gt;
&lt;p&gt;Yeah, but no! This is not healthy and needs to change. I somehow hope the stress and pressure will stop when I finish being a full-time student, but if I am being honest with myself, I think it won&#39;t. At least not unless I actively do something about it. I am caught in a cycle of studying and working towards goals, feeling pressured by both external and internal expectations to always do more. This leads to a sense of never achieving enough and failing to recognise my accomplishments.&lt;/p&gt;
&lt;p&gt;Sometimes, I wonder how to stop this cycle. I am aware of it, but to stop overworking yourself is still hard. I love my work; it is so interesting, and I learn much daily. But I also need to find hobbies just for pleasure and keep a balance. I am so used to trying to satisfy expectations, pleasing everybody else and neglecting my own needs. This is really something I want to work on in 2024. Although it overwhelms me, I think the awareness of this issue is my first step in prioritising my mental health.&lt;/p&gt;
&lt;h2&gt;Plans for 2024&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;I have many other goals, like getting an accessibility certification, writing more blog posts and trying out conference speaking. But I don&#39;t want to put too much pressure on myself, so I will probably save them for 2024 instead.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I managed to write some more blog posts in 2023 (&lt;a href=&quot;https://dnikub.dev/blog/2023/the-problem-with-auto-generated-alternative-texts-for-images&quot;&gt;#1&lt;/a&gt;, &lt;a href=&quot;https://dnikub.dev/blog/2023/recap-websummit-2023&quot;&gt;#2&lt;/a&gt;, &lt;a href=&quot;https://www.htmhell.dev/adventcalendar/2023/4/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;#3&lt;/a&gt;), but an accessibility certification and public speaking are still on my vision board. Maybe not for 2024, but definitely for the near future.&lt;/p&gt;
&lt;p&gt;So, my plans for 2024 can be summarised as such:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Finish my thesis (for real) and share the findings with the community&lt;/li&gt;
&lt;li&gt;Start a job I am passionate about&lt;/li&gt;
&lt;li&gt;Find a balance and focus more on my mental health&lt;/li&gt;
&lt;li&gt;Continue getting out of my comfort zone&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Overall, 2023 was great, but I also can&#39;t wait for 2024!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Back to Basics: 5 HTML attributes for improved accessibility and user experience</title>
    <link href="https://dnikub.dev/blog/2023/htmHell-advent/"/>
    <updated>2023-12-04T00:00:00Z</updated>
    <id>https://dnikub.dev/blog/2023/htmHell-advent/</id>
    <content xml:lang="en" type="html"></content>
  </entry>
  <entry>
    <title>The experience of being a woman at a tech conf – a WebSummit 2023 recap</title>
    <link href="https://dnikub.dev/blog/2023/recap-websummit-2023/"/>
    <updated>2023-11-18T00:00:00Z</updated>
    <id>https://dnikub.dev/blog/2023/recap-websummit-2023/</id>
    <content xml:lang="en" type="html">&lt;p class=&quot;text-base mt-0&quot;&gt;&lt;time datetime=&quot;2023-12-31&quot;&gt;November 18, 2023&lt;/time&gt; | 3min read&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Attending this year&#39;s &lt;a href=&quot;https://websummit.com/&quot;&gt;WebSummit&lt;/a&gt; catapulted me out of my bubble. My bubble was comfortable. I liked it there. But, WebSummit showed me that much more needs to be done to integrate women into the digital space. But let&#39;s start at the beginning.&lt;/p&gt;
&lt;h2&gt;The WebSummit in a nutshell&lt;/h2&gt;
&lt;p&gt;Along with 70,000 other attendees, I had the opportunity to attend the WebSummit in Lisbon thanks to a &lt;a href=&quot;https://websummit.com/women-in-tech&quot;&gt;Women in Tech ticket&lt;/a&gt;. It is much cheaper than regular tickets and comes in a package of two. So I took one of my best friends with me on a trip to Lisbon.&lt;/p&gt;
&lt;p&gt;Let&#39;s face it, attending such a big conference is an experience. Lots of people, lots of queues, lots of things happening simultaneously (e.g. talks, pitches, events). I met some wonderful people and witnessed some great ideas, but the overall experience was not that great.&lt;/p&gt;
&lt;p&gt;As &lt;a href=&quot;https://www.linkedin.com/pulse/websummit-over-might-very-different-next-year-florian-bauer-ndoqe/&quot;&gt;Florian Bauer summarised in his recap&lt;/a&gt;, several high-profile companies, including Amazon, Google and Meta, pulled out of the event due to a political statement made by the ex-CEO of the WebSummit. This was especially unfortunate for all attendees. Most people can&#39;t afford to cancel their entire trip two weeks before the event. The lack of well-known speakers and companies meant the talks were less varied. Especially for me as a developer, there were not many intriguing discussions on stage that I could learn from. Most topics just scratched the surface, and many talks seemed to repeat themselves: &lt;em&gt;&amp;quot;AI is the new big thing that can make you rich, but (maybe) we should consider ethics.&amp;quot;&lt;/em&gt; How, you might ask? I don&#39;t know either.&lt;/p&gt;
&lt;h2&gt;We need more women in tech&lt;/h2&gt;
&lt;p&gt;Aside from the uninspiring conference programme at the Websummit, there are a few other things I would like to point out. I wouldn&#39;t say these are problems with the Websummit per se, but with the technology space in general. As I said, at home, I am in my comfortable bubble of women empowering each other and men respecting you for your abilities. Attending this conference showed me how much work still needs to be done. Why?&lt;/p&gt;
&lt;h3&gt;1. It&#39;s often a sausage party&lt;/h3&gt;
&lt;p&gt;I know I shouldn&#39;t be surprised. But I am a bit. Walking around the Websummit and talking to startups, many were built by and for men. And it shows. I would like to see more diverse teams thinking about the needs of women and minorities.&lt;/p&gt;
&lt;h3 aria-label=&quot;2. Why is this for women only?&quot;&gt;2. WhY iS tHiS fOr WoMeN oNlY?&lt;/h3&gt;
&lt;p&gt;My Women in Tech ticket gave me access to the Women in Tech lounge at the conference. When I got there, I was surprised by the number of men in the lounge. When I later expressed my surprise in a group setting, I was interrupted by a man who said, &lt;em&gt;&amp;quot;Well, I like the fact that everyone can access the lounge. It&#39;s stupid that only women can go in.&amp;quot;&lt;/em&gt; I asked why. (Hold your Prosecco, please) &lt;em&gt;&amp;quot;Because when only women get together as a group, they create such a scary dynamic. I don&#39;t like it.&amp;quot;&lt;/em&gt; Well, if it isn&#39;t fragile masculinity.&lt;/p&gt;
&lt;p&gt;Don&#39;t get me wrong, I&#39;m not angry that men were in the lounge. I&#39;m just a little disappointed. Being at a male-dominated conference for three days straight is exhausting, and I would have liked to have had a space to withdraw for a moment and spend time with like-minded people.&lt;/p&gt;
&lt;h3&gt;3. Sexism in the workplace&lt;/h3&gt;
&lt;p&gt;I wasn&#39;t prepared for some of the unhinged comments I received when networking in a business context. &lt;em&gt;&amp;quot;You can code? You give me more of a project manager vibe.&amp;quot;&lt;/em&gt; or &lt;em&gt;&amp;quot;Oh, I love your glasses, you look like a sexy nerd.&amp;quot;&lt;/em&gt;. Like everyone else, I was there to meet new people, make connections and expand my network. Not to deal with unprofessional sexist comments.&lt;/p&gt;
&lt;h2&gt;Concluding&lt;/h2&gt;
&lt;p&gt;In summary, I&#39;ll definitely be reconsidering my attendance next year. As it was mostly an exhausting experience, I would like to spend my time on conferences I really value (like &lt;a href=&quot;https://beyondtellerrand.com/&quot;&gt;beyond tellerrand&lt;/a&gt;). But I also hope to make a difference by sharing my experiences here. If you are a man and reading this, maybe I made you aware of what is still happening in our shared space. We need more allies to make change happen. Please take a minute to think about how you can help empower and include people in tech to create a more diverse community. Any help and small step in the right direction will be greatly appreciated.&lt;/p&gt;
&lt;p&gt;Now, I&#39;m going offline for a few days to recharge my social batteries.&lt;/p&gt;
&lt;p&gt;Much love,
Daniela&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The problem with auto-generated alternative texts for images</title>
    <link href="https://dnikub.dev/blog/2023/the-problem-with-auto-generated-alternative-texts-for-images/"/>
    <updated>2023-07-24T00:00:00Z</updated>
    <id>https://dnikub.dev/blog/2023/the-problem-with-auto-generated-alternative-texts-for-images/</id>
    <content xml:lang="en" type="html">&lt;p class=&quot;text-base mt-0&quot;&gt;&lt;time datetime=&quot;2023-07-24&quot;&gt;July 24, 2023&lt;/time&gt; | 8min read&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Last week I shared a real-life example of alternative texts I came across on a website I audited. The alternative texts were auto-generated by an accessibility overlay with the help of AI. The results were not so great.&lt;/p&gt;
&lt;div class=&quot;w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20230724/alt-text.png&quot; alt=&quot;Different company logos and their alternative texts are displayed on a website. The descriptions do not match or describe the logo. Some examples of the displayed logo descriptions are: &amp;quot;logo&amp;quot;, &amp;quot;text&amp;quot;, &amp;quot;cutlery&amp;quot;, &amp;quot;logo, company name&amp;quot;, &amp;quot;number&amp;quot;, &amp;quot;a close-up of a sign&amp;quot;, &amp;quot;a white and black sign&amp;quot;, &amp;quot;symbol&amp;quot;, and &amp;quot;graphical user interface, text, application&amp;quot;.&quot; class=&quot;w-full&quot; lang=&quot;en&quot;&gt;
&lt;/div&gt;
&lt;p&gt;We are looking at different company logos, almost all in German. Most are wordmarks (text only), but some are combination marks (symbol + text).&lt;/p&gt;
&lt;p&gt;Examples of the generated alternative texts are:&lt;/p&gt;
&lt;ul class=&quot;ml-10&quot;&gt;
    &lt;li&gt;
        symbol
    &lt;/li&gt;
    &lt;li&gt;
        logo, company name
    &lt;/li&gt;
    &lt;li&gt;
        graphical user interface, text, application
    &lt;/li&gt;
    &lt;li&gt;
        a close-up of a sign
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What are the issues here?&lt;/h2&gt;
&lt;p&gt;We can identify a few problems if we take a closer look.&lt;/p&gt;
&lt;h3&gt;1. The generated &lt;code&gt;alt&lt;/code&gt; texts are in English, although the logo (&amp;amp; website&#39;s content) is German&lt;/h3&gt;
&lt;p&gt;This is just confusing. In this context, people expect German content. Some may not be fluent in English and get baffled by content in a language they don&#39;t speak.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.w3.org/TR/WCAG21/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;WCAG 2.1&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt; have covered this issue with their &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/language-of-parts.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;success criterion 3.2.1 Language of Parts (Level AA)&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt;. Content written in a different language from the page&#39;s default language should be identified in the code. Using the correct language is vital for assistive devices to pronounce content correctly. A screen reader will switch to the right speech synthesizer when the language changes.&lt;/p&gt;
&lt;p&gt;However, writing the alternative texts in German is the easiest fix in this case.&lt;/p&gt;
&lt;h3&gt;2. Automated accessibility tests will pass due to the presence of the &lt;code&gt;alt&lt;/code&gt; text&lt;/h3&gt;
&lt;p&gt;If I were lazy (or wouldn&#39;t know better), I&#39;d probably leave the alternative texts like that. Why? All automated testing tools (e.g. &lt;a href=&quot;https://wave.webaim.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; class=&quot;uppercase&quot;&gt;Wave&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt;) now pass without errors in this section due to a present alternative text inside the &lt;code&gt;alt&lt;/code&gt; attribute.&lt;/p&gt;
&lt;p&gt;That doesn&#39;t sound so bad, right?&lt;/p&gt;
&lt;p&gt;Well, first of all, not every image should have an alternative text. &lt;a href=&quot;https://www.w3.org/WAI/tutorials/images/decorative/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;Some images are just decorative&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt;  and have to be marked as such. You do so by adding an empty &lt;code&gt;alt&lt;/code&gt; text to your image.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/cat.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Secondly, you should &lt;strong class=&quot;text-highlight&quot;&gt;always manually test your alternative texts&lt;/strong&gt; to ensure they are meaningful. If an image description doesn&#39;t add valuable meaning to the content, it is more annoying than anything, especially for screen reader users.&lt;/p&gt;
&lt;p&gt;In the case of our logos, the alternative text mustn&#39;t be just any text but meaningful. Automated test passing here is a &lt;a href=&quot;https://developers.google.com/machine-learning/crash-course/classification/true-false-positive-negative&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;false positive&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;3. The generated &lt;code&gt;alt&lt;/code&gt; texts are insufficient, confusing and simply wrong&lt;/h3&gt;
&lt;p&gt;Sighted users can quickly identify that the alternative texts don&#39;t match the pictured logo. Most assistive technology users, especially blind users, can&#39;t.&lt;/p&gt;
&lt;p&gt;The visual presentation of the text is essential to the logo&#39;s identity. The image needs the correct text alternative to give users the information they need and, in addition, pass the &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Understanding/images-of-text.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;success criterion 1.4.5 Images of Text (Level AA)&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt; of the WCAG 2.1.&lt;/p&gt;
&lt;h4&gt;Let&#39;s improve these &lt;code&gt;alt&lt;/code&gt; texts.&lt;/h4&gt;
&lt;p&gt;We pick one of the logos as an example. The pictured logo contains the text &amp;quot;transart festival of contemporary culture&amp;quot;. The alternative text added by the AI is &amp;quot;a black and white sign&amp;quot;.&lt;/p&gt;
&lt;div class=&quot;w-1/2 my-4 p-4 border-solid border-2 border-primary-light dark:bg-light&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20230724/transart-logo.webp&quot; alt=&quot;Transart festival of contemporary culture logo&quot; class=&quot;w-full&quot;&gt;
&lt;/div&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/logo.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;a black and white sign&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This generated text alternative does not match the text pictured on the image. The &lt;a href=&quot;https://www.w3.org/WAI/tutorials/images/textual/#image-of-styled-text-with-decorative-effect&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;W3C Images of Text Guide&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt; says to always use the logo text as the text alternative.&lt;/p&gt;
&lt;p&gt;As a first step, we remove the auto-generated alternative text from the &lt;code&gt;alt&lt;/code&gt; attribute.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/logo.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Because this image shows a textual logo, it is not decorative and needs an alternative text. This means we cannot leave the &lt;code&gt;alt&lt;/code&gt; attribute empty. We add the text pictured within the logo into the &lt;code&gt;alt&lt;/code&gt; attribute.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/logo.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Transart festival of contemporary culture&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now we can enhance this further.&lt;/p&gt;
&lt;p&gt;Sometimes company names are not well-known or common words, like &amp;quot;Apple&amp;quot;. From the context, it is not always clear that the image displays a logo, not a picture of a fruit. For a slightly better experience, we add the word &amp;quot;logo&amp;quot; at the end of the &lt;code&gt;alt&lt;/code&gt; text.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Depending on the context and logo in question, this step is optional.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/logo.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Transart festival of contemporary culture logo&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As mentioned earlier, the website using this logo is in German. Because the logo text is in English, we cannot translate it. We must add a &lt;code&gt;lang&lt;/code&gt; attribute to the &lt;code&gt;img&lt;/code&gt; element.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;html&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;de&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    ...
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; 
        &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/logo.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; 
        &lt;span class=&quot;token attr-name&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;en&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Transart festival of contemporary culture logo&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    ...
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;html&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Special case: image within a link&lt;/h4&gt;
&lt;p&gt;If the image is wrapped inside a link without additional text describing the link destination, it is categorized as a &lt;a href=&quot;https://www.w3.org/WAI/tutorials/images/functional/#image-used-alone-as-a-linked-logo&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;functional image&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt;. In this case, we need an extra indicator of where the link takes us.&lt;/p&gt;
&lt;p&gt;We add the link destination at the end of the present alternative text inside the &lt;code&gt;alt&lt;/code&gt; attribute.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- link to an internal page (e.g. the homepage) --&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/logo.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Transart festival of contemporary culture home&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- link to an external website --&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://www.transart.it/en&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/logo.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Transart festival of contemporary culture Website&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To make the outgoing link even more accessible, we add some extra attributes and information.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;target= &amp;quot;_blank&amp;quot;&lt;/code&gt; guarantees the link opens in a new tab. To inform screen reader users of that, we add a &lt;code&gt;span&lt;/code&gt; inside our link with an additional description only available for assistive devices.&lt;/p&gt;
&lt;p&gt;Adding &lt;code&gt;&amp;quot;noopener noreferrer nofollow&amp;quot;&lt;/code&gt; inside the &lt;code&gt;rel&lt;/code&gt; attribute ensures that users are protected from potentially malicious external links (&lt;code&gt;noopener&lt;/code&gt;), unwillingly appearing in a website&#39;s analytics data as referred traffic (&lt;code&gt;noreferrer&lt;/code&gt;) and endorsing the content or creator we&#39;re linking to (&lt;code&gt;nofollow&lt;/code&gt;).&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://www.transart.it&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;_blank&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;noopener noreferrer nofollow&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;img&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/logo.jpg&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; 
    &lt;span class=&quot;token attr-name&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Transart festival of contemporary culture Website&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;span&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;sr-only&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    (opens in a new tab)
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;span&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Some best practices for writing &lt;code&gt;alt&lt;/code&gt; texts&lt;/h2&gt;
&lt;ol class=&quot;ml-10&quot;&gt;
    &lt;li class=&quot;my-4&quot;&gt;
        Check if the image really needs a description. Maybe it is decorative. The &lt;a href=&quot;https://www.w3.org/WAI/tutorials/images/decision-tree/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;W3C alt decision tree&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt; is an excellent resource to help you categorize your photos.
    &lt;/li&gt;
    &lt;li class=&quot;my-4&quot;&gt;
        Avoid writing &quot;Image of&quot;, &quot;Icon of&quot;, or &quot;Picture of&quot;. Screen readers announce the presence of an image. Adding these words inside your &lt;code&gt;alt&lt;/code&gt; is unnecessary.
    &lt;/li&gt;
    &lt;li class=&quot;my-4&quot;&gt;
        Keep it as short as possible. Be specific but not overly descriptive.
    &lt;/li&gt;
    &lt;li class=&quot;my-4&quot;&gt;
        Try to put the most essential information at the beginning of your description.
    &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Don&#39;t worry if it feels overwhelming in the beginning. It will get easier over time.&lt;/p&gt;
&lt;h3&gt;Does this mean I shouldn&#39;t use automated AI-generated solutions?&lt;/h3&gt;
&lt;p&gt;No. You can use AI to speed up your writing of alternative texts, but you shouldn&#39;t blindly trust it. Most tools are still very limited in what they can do. Please always manually check if the proposed text makes sense to an actual human being.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>My year in review – 2022</title>
    <link href="https://dnikub.dev/blog/2022/year-review-2022/"/>
    <updated>2022-12-31T00:00:00Z</updated>
    <id>https://dnikub.dev/blog/2022/year-review-2022/</id>
    <content xml:lang="en" type="html">&lt;p class=&quot;text-base mt-0&quot;&gt;&lt;time datetime=&quot;2022-12-31&quot;&gt;December 31, 2022&lt;/time&gt; | 5min read&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;In the last few days, articles of people looking back at this year in retrospect popped up everywhere and inspired me to do the same. As I am often very critical of myself and don&#39;t cherish my success enough, I thought reflecting on 2022 could be a good idea.&lt;/p&gt;
&lt;h2&gt;Launching my passion project&lt;/h2&gt;
&lt;p&gt;Beginning this year, I launched my master&#39;s project &lt;a href=&quot;https://a11yphant.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;a11yphant.com&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt;. It is a platform that teaches the basics of web accessibility through interactive coding challenges and quizzes. a11yphant was created together with some of my closest friends. We were overwhelmed by the positive feedback from everyone in the community. a11yphant even got featured by &lt;a href=&quot;https://www.smashingmagazine.com/the-smashing-newsletter/smashing-newsletter-issue-344/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;Smashing Magazine in their newsletter&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;sr-only&quot;&gt;allyphant&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;a11yphant&lt;/span&gt; started as a university project and still kind of is. But my hopes for 2023 are that my team and I find more time to develop it further to hopefully make the web a more accessible place.&lt;/p&gt;
&lt;div class=&quot;w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/a11yphant-1.gif&quot; alt=&quot;The website a11yphant.com and its functionality is interactevily displayed in the form of a GIF.&quot; class=&quot;w-full&quot;&gt;
&lt;/div&gt;
&lt;h2&gt;Sickness &amp;gt; Wellness&lt;/h2&gt;
&lt;p&gt;In January, I got infected with Covid-19. Although I was young and vaccinated three times, I got sicker than expected. For three days, I really felt like shit, unable to leave my bed. Whilst most of my friends just had symptoms of a cold, I experienced something completely different. It took some weeks to get rid of Covid entirely.&lt;/p&gt;
&lt;p&gt;In general, I felt like I was sick more than I was not. Wearing masks all the time really killed my immune system. By the end of this year, I was so annoyed that I started taking my health more seriously. I made sure I didn&#39;t have any (vitamin) deficiencies and have been moving more to compensate for sitting in front of the computer so much.&lt;/p&gt;
&lt;h2&gt;Being vegan for the 2nd year in a row&lt;/h2&gt;
&lt;p&gt;I am so glad  I decided two years ago to become vegan as a new year&#39;s resolution. For me personally, this step was due to health reasons, and my doctors encouraged it to be the best solution for me. I sometimes miss the taste of some food I know from my childhood, and going out for dinner with friends can be difficult. Some days are just more challenging than others. But overall, I wouldn&#39;t change it back. I feel so much better it&#39;s hard to even describe. It was really worth it.&lt;/p&gt;
&lt;p&gt;And after two years, I learned so much about a plant-based diet that I can recreate some of my beloved childhood meals. Receiving acceptance for my diet choice in my environment remains a struggle sometimes, especially in the generation of my grandparents. Still, I am determined it will improve over time.&lt;/p&gt;
&lt;div class=&quot;flex w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/food-1.jpg&quot; alt=&quot;Croquettes on a mushroom sauce. Served with a bottle of white wine.&quot; class=&quot;w-1/2 sm:mb-4 mb-0 pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/food-3.jpeg&quot; alt=&quot;Vegan inside-out maki rolls on a plate.&quot; class=&quot;w-1/2&quot;&gt;
&lt;/div&gt;
&lt;h2&gt;Moving abroad&lt;/h2&gt;
&lt;p&gt;Beginning of 2022, I moved to Sweden for a year to study a second master&#39;s programme (Digital Service Innovation) parallel to my web development master&#39;s. This step was kinda scary at first. I have never been physically away from my friends, family and partner for so long. Regardless, being entirely on my own and experiencing a different country and culture turned out great. I evolved a lot, personally and mentally. I now know more evident than ever what I want in my life and what I want to let go of, and I feel prepared for the upcoming years. I also met a lot of great people.&lt;/p&gt;
&lt;div class=&quot;sm:flex w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/sweden-1.jpeg&quot; alt=&quot;Me, a young woman with shoulder-length blonde hair, wearing sunglasses, a beige hoodie and jeans. I am standing at the beach and looking into the distance.&quot; class=&quot;sm:w-1/3 mb-4 sm:mb-0 sm:pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/sweden-4.jpeg&quot; alt=&quot;A wooden jetty going into the sea, surrounded by trees.&quot; class=&quot;sm:w-1/3 mb-4 sm:mb-0 sm:pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/europe-8.jpeg&quot; alt=&quot;Typical white Swedish wooden houses.&quot; class=&quot;sm:w-1/3&quot;&gt;
&lt;/div&gt;
&lt;h2&gt;Receiving a special Swedish welcome&lt;/h2&gt;
&lt;p&gt;Being a new student in Sweden is very, let&#39;s say... interesting. The city of Halmstad, in the southwest of Sweden, has a big welcoming tradition called &amp;quot;Nollningen&amp;quot;. It is a week filled with games, dances and competitions between all first-year students to get to know each other. Everyone wears costumes and plays a character in a two-week storyline. But let&#39;s see for yourself with the pictures below. It was definitely a tradition to remember.&lt;/p&gt;
&lt;div class=&quot;sm:flex w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/nolle-1.jpg&quot; alt=&quot;People dressed up with colourful wigs, masks and overalls, standing on a grass field.&quot; class=&quot;sm:w-1/2 mb-4 sm:mb-0 sm:pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/nolle-3.jpg&quot; alt=&quot;People dressed up with colourful wigs, masks and overalls, walking over as street.&quot; class=&quot;sm:w-1/2&quot;&gt;
&lt;/div&gt;
&lt;h2&gt;Starting a second master&#39;s&lt;/h2&gt;
&lt;p&gt;My intention with this whole journey of starting a second master&#39;s was to look at tech from a different angle. In the last 4 years at university, I focused a lot on various programming languages and coding techniques, the newest frameworks and trends. As interesting as this is, I was missing the human part. Pursuing this other master&#39;s in Sweden, I learned a lot about ethics and sustainability in IT, user experience and scientific research approaches. I really appreciate the opportunity of gaining this new knowledge and these perspectives.&lt;/p&gt;
&lt;p&gt;However, I genuinely missed my partner. We had to do long-distance for this year. And I also realised I miss coding.&lt;/p&gt;
&lt;h2&gt;I want to code&lt;/h2&gt;
&lt;p&gt;If you want to call it that way, the &amp;quot;downside&amp;quot; of having a more user-centric university programme is not writing code. I am a full-time student and never had to code for any assignment in 2022, and I really miss it. Last year, I was unsure where to go with my professional career. Now I know that coding must be part of it somehow.&lt;/p&gt;
&lt;h2&gt;Travelling around Europe&lt;/h2&gt;
&lt;p&gt;In February, I made a one-week trip to the Swedish Lappland. After a 25h bus ride, we arrived. It was freezing, with -20 degrees celsius (-4 degrees Fahrenheit) and a lot of snow. But I saw some northern lights, went cross-country skiing, did a snow hike and went on a husky sleigh ride.&lt;/p&gt;
&lt;div class=&quot;flex w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/lappland-1.jpeg&quot; alt=&quot;Wodden houses covered in meters of snow.&quot; class=&quot;w-1/2 pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/lappland-2.jpeg&quot; alt=&quot;Me, a young woman with blonde braided hair, wearing very thick and warm winter cloth.&quot; class=&quot;w-1/2&quot;&gt;
&lt;/div&gt;
&lt;p&gt;During the summer of 2022, I did Interrail around Europe with my partner. With Interrail, you can buy one single train ticket for a chosen period (2 days, 1 week, 2 months, etc.) and take all trains in Europe at any time within your selected timeframe. In three weeks, we visited almost 20 cities in 8 different countries. Among these were Oslo, Bergen, Stockholm, Copenhagen, Berlin, Hamburg, Basel, Amsterdam and Brussels.&lt;/p&gt;
&lt;div class=&quot;flex w-full mt-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/europe-3.jpeg&quot; alt=&quot;A housefront of white houses.&quot; class=&quot;w-1/2 sm:w-1/3 mb-4 sm:mb-0 pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/europe-10.jpeg&quot; alt=&quot;The Elbphilharmonie in Hamburg, Germany.&quot; class=&quot;w-1/2 sm:w-1/3 mb-4 sm:mb-0 sm:pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/europe-5.jpeg&quot; alt=&quot;A housefront of a typical old red and yellow Swedish building.&quot; class=&quot;hidden sm:block sm:w-1/3&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;flex sm:hidden w-full mt-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/europe-5.jpeg&quot; alt=&quot;A housefront of a typical old red and yellow Swedish building.&quot; class=&quot;w-1/2  pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/europe-7.jpeg&quot; alt=&quot;The entrance hall of the opera in Oslo, Norway.&quot; class=&quot;w-1/2 sm:mb-4&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;flex w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/europe-7.jpeg&quot; alt=&quot;The entrance hall of the opera in Oslo, Norway.&quot; class=&quot;hidden sm:block sm:w-1/3 mb-4 sm:mb-0 pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/europe-6.jpeg&quot; alt=&quot;A typical Swedish brown wooden house.&quot; class=&quot;w-1/2 sm:w-1/3 mb-4 sm:mb-0 pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/europe-2.jpeg&quot; alt=&quot;The courtyard of the European parliament in Brussels, Belgium.&quot; class=&quot;w-1/2 sm:w-1/3 mb-4&quot;&gt;
&lt;/div&gt;
&lt;h2&gt;Participating in my first Hackathon&lt;/h2&gt;
&lt;p&gt;2022 was the year I participated in my first hackathon with four of my closest friends. We worked together like a well-serviced machine, as we have done in various university projects during my bachelor&#39;s and master&#39;s. Within 24h of the hackathon, we created &amp;quot;bitbee&amp;quot;, a virtual copy of a real bee hive. A user could sponsor a real beekeeper to #SaveTheBees. In the end, our team didn&#39;t win anything at the hackathon. But we realised that we really enjoy working together and want to do some more projects for fun in the future.&lt;/p&gt;
&lt;div class=&quot;sm:flex w-full my-8&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/bee-1.jpg&quot; alt=&quot;A group of five people aged around 25. Four are men and one is a woman. Thea are smiling.&quot; class=&quot;sm:w-1/2 mb-4 sm:mb-0 sm:pr-4&quot;&gt;
    &lt;img src=&quot;https://dnikub.dev/assets/images/blog/20221231/bee-2.jpg&quot; alt=&quot;&quot; class=&quot;sm:w-1/2&quot;&gt;
&lt;/div&gt;
&lt;h2&gt;Writing my first blog post&lt;/h2&gt;
&lt;p&gt;This year, a little dream of mine came true. I had the opportunity to write a blog post for the &lt;a href=&quot;https://www.htmhell.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;HTMHell&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt; advent calendar created by &lt;a href=&quot;https://www.matuzo.at/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;Manuel Matuzovic&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt;. I have read a lot of blog posts in my time, mainly about accessibility, and I have always wanted to write one myself. But I never did until this year. If you want to learn how to &lt;a href=&quot;https://www.htmhell.dev/adventcalendar/2022/15/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot;&gt;get that marquee ✨AeStHeTiC✨&lt;span class=&quot;sr-only&quot;&gt;(opens in a new tab)&lt;/span&gt;&lt;/a&gt; but in an accessible way, check it out.&lt;/p&gt;
&lt;h2&gt;Plans for 2023&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Introducing a &amp;quot;passion day&amp;quot; (work-related, obvs.). I want to prioritize focusing on my interests. I always have so many university tasks that I don&#39;t find the time to, for example, just read some accessibility blog posts. That must change.&lt;/li&gt;
&lt;li&gt;Write (and finish) my master&#39;s thesis.&lt;/li&gt;
&lt;li&gt;Get my degrees, aka. finish my double master&#39;s.&lt;/li&gt;
&lt;li&gt;No more long-distance relationship.&lt;/li&gt;
&lt;li&gt;Move to a different country (together with my partner). Preferably to Portugal or Spain. My mental health and overall well-being need sunny days and warm weather (sorry, Sweden).&lt;/li&gt;
&lt;li&gt;I have many other goals, like getting an accessibility certification, writing more blog posts and trying out conference speaking. But I don&#39;t want to put too much pressure on myself, so I will probably save them for 2024 instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Overall, 2022 was great, but I also can&#39;t wait for 2023!&lt;/p&gt;
</content>
  </entry>
</feed>