<?xml version="1.0" encoding="utf-8"?>

<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">
  <channel>
    <title>Vanza Setia - Articles</title>
    <language>en-us</language>
    <link>https://vanzasetia.xyz</link>
    <description>I help new web developers build great websites on their own without going through tutorial hell and experiencing the blank page syndrome.</description>
    <copyright>Copyright © 2024, 2025, 2026 Vanza Setia.</copyright>
    <docs>https://www.rssboard.org/rss-specification</docs>
    <lastBuildDate>Sun, 22 Mar 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://vanzasetia.xyz/feed.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Stock Images Destroy Your Content</title>
      <link>https://vanzasetia.xyz/blog/stock-images/</link>
      <dc:creator>Vanza Setia</dc:creator>
      <pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://vanzasetia.xyz/blog/stock-images/</guid>
      <description>&lt;p&gt;Stock images exist in articles. A stock image exists at the top of each article, below a title or above it. The image can also exist on every section, below every sub-heading. The purpose of stock images is to make the article look better, supposedly. But it is not. In fact, those stock images make your website look ugly and generic and blend with the crowd.&lt;/p&gt;&lt;p&gt;Stock images make your website ugly. If you choose stock images that have nothing to do with the article, you already make your website ugly. Those images add nothing. They are just annoying images. They also give you a negative impression. When I read an article with stock images at &lt;a href=&quot;https://dev.to/&quot;&gt;DEV Community&lt;/a&gt;, I often ask myself, &amp;quot;Why do these people put useless images? Why do they want to waste my cellular data? Why do they want to waste my time?&amp;quot; Those authors are weird.&lt;/p&gt;&lt;p&gt;Stock images have nothing to do with the content. To know that, we ignore the images and see if we miss something. When we understand the content without those images, they are decorative images. They are not really &amp;quot;decorative&amp;quot; because they are part of the article. But they are also decorative because the purpose is to make the article look interesting. At least, those are what the author thinks. For me, those images do not add beauty to the website. They make your articles look generic. They are not your content, and they do not make your readers feel &lt;em&gt;content&lt;/em&gt; either.&lt;/p&gt;&lt;p&gt;Stock images make your website look the same as others. They have been overused. If you often see an image showing a laptop, ask yourself, &amp;quot;Why does the laptop matter?&amp;quot; The laptop is not yours. It is not owned by the author. It is just a stupid laptop. Even if the title says something about programming, the content is not about the laptop in the image. I think the laptop is much more popular than the owner.&lt;/p&gt;&lt;p&gt;Stock images look fake and inauthentic. Seeing a fake smile does not make me smile.&lt;/p&gt;&lt;p&gt;Searching for stock images is a waste of time and energy. Those people probably have more time than the rest of us. They are willing to spend their time on something that their readers do not need. That is a sign of intelligence.&lt;/p&gt;&lt;p&gt;Stock images have potential legal issues. Some are copyrighted images. You do need to be careful if you want to use one. Pay attention to the license. Read it. If you can not find it, do not use the image. Complicated? Then, do not use stock images.&lt;/p&gt;&lt;p&gt;Simply, I say this to you: &lt;strong&gt;please do not make your article like a comic&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    
    
    <item>
      <title>Background Image Vs HTML Image? Which One Should I Use?</title>
      <link>https://vanzasetia.xyz/blog/background-image/</link>
      <dc:creator>Vanza Setia</dc:creator>
      <pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://vanzasetia.xyz/blog/background-image/</guid>
      <description>&lt;p&gt;Use CSS &lt;code&gt;background-image&lt;/code&gt; property for decorative images. This means the image&lt;/p&gt;&lt;ul&gt;&lt;li&gt;gives no information at all; and&lt;/li&gt;&lt;li&gt;makes your website more attractive only; and&lt;/li&gt;&lt;li&gt;is just a background image.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Use the HTML image element (&lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;) for meaningful images. This means the image&lt;/p&gt;&lt;ul&gt;&lt;li&gt;needs alternative text; or&lt;/li&gt;&lt;li&gt;must exist to give users information; or&lt;/li&gt;&lt;li&gt;is not a &lt;a href=&quot;https://vanzasetia.xyz/blog/stock-images/&quot;&gt;stock image&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;A bonus tip: &lt;strong&gt;optimize the file size of your image.&lt;/strong&gt; Do not make your users download 10 Megabytes (MB) of an image when it can be reduced to 1 MB—or even less. Use &lt;a href=&quot;https://squoosh.app/&quot;&gt;Squoosh&lt;/a&gt; or &lt;a href=&quot;https://vanzasetia.xyz/blog/squoosh/&quot;&gt;run it locally&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    
    <item>
      <title>The Content inside the Aria-Label Is for Humans</title>
      <link>https://vanzasetia.xyz/blog/aria-label-human/</link>
      <dc:creator>Vanza Setia</dc:creator>
      <pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://vanzasetia.xyz/blog/aria-label-human/</guid>
      <description>&lt;p&gt;You do not write the following:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;nav aria-label=&amp;quot;primary-navigation&amp;quot;&amp;gt;
  &amp;lt;!-- a list of internal links --&amp;gt;
&amp;lt;/nav&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Do not do that. The value of the &lt;code&gt;aria-label&lt;/code&gt; is for humans. Instead, write the following:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;nav aria-label=&amp;quot;Primary&amp;quot;&amp;gt;
  &amp;lt;!-- a list of internal links --&amp;gt;
&amp;lt;/nav&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Explanations:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Remove the &amp;quot;-navigation&amp;quot; because the &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; element already has the semantic meaning as the navigation landmark.&lt;/li&gt;&lt;li&gt;No code is written there. This means we do not want screen readers or other assistive technologies to say something like, &amp;quot;primary dash navigation, navigation landmark.&amp;quot; We want those tools to say, &amp;quot;primary, navigation landmark.&amp;quot;&lt;/li&gt;&lt;/ul&gt;</description>
    </item>
    
    
    <item>
      <title>CSS Text-Decoration Is Deceiving</title>
      <link>https://vanzasetia.xyz/blog/text-decoration/</link>
      <dc:creator>Vanza Setia</dc:creator>
      <pubDate>Sat, 21 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://vanzasetia.xyz/blog/text-decoration/</guid>
      <description>&lt;p&gt;Decorative elements, such as decorative images, are not essential. This means that without those elements, the website can still function properly for all users. This is why every &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; element with an empty &lt;code&gt;alt&lt;/code&gt; attribute will not be read by a screen reader. But the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-decoration&quot;&gt;CSS &lt;code&gt;text-decoration&lt;/code&gt; property&lt;/a&gt; for links is not merely a decoration.&lt;/p&gt;&lt;p&gt;Every inline text link without an underline is &lt;a href=&quot;https://vanzasetia.xyz/blog/hover-effect-confuse/&quot;&gt;problematic&lt;/a&gt;. Users who browse the web visually need a way to identify links in a paragraph. If web developers decide to do the following, they need to provide an alternative way for the users to identify inline text links:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;a {
  text-decoration: none;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Web developers can decide to use color to differentiate links and plain text. But we understand very well that &lt;a href=&quot;https://en.wikipedia.org/wiki/Color_blindness&quot;&gt;people with color blindness&lt;/a&gt; exist. We also know that &lt;a href=&quot;https://www.w3.org/WAI/WCAG22/Understanding/use-of-color&quot;&gt;Success Criterion (SC) 1.4.1 Use of Color (Level A)&lt;/a&gt; from &lt;a href=&quot;https://www.w3.org/TR/WCAG22/&quot;&gt;Web Content Accessibility Guidelines version (WCAG) 2.2&lt;/a&gt;, mentions, &amp;quot;Color is not the only way of distinguishing information.&amp;quot; Simply, &lt;strong&gt;color is not enough&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;By the way, the default style of the &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element is blue text color with an underline. The default styling passes SC 1.4.1 Use of Color. It is also widely recognized by all internet users as a link.&lt;/p&gt;&lt;p&gt;Going back, web developers still need to provide a way. They can be &lt;a href=&quot;https://vanzasetia.xyz/blog/web-resign/&quot;&gt;creative&lt;/a&gt;. They can use the &lt;code&gt;border&lt;/code&gt; property, for example.&lt;/p&gt;&lt;p&gt;But, personally, I prefer simplicity to style inline text links. I prefer &lt;em&gt;enhancing the default styling&lt;/em&gt; rather than making my own unique inline text link styling.&lt;/p&gt;&lt;p&gt;If you make a button with &amp;quot;Discover more ways to learn science,&amp;quot; and you use the &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element, go for it. You can even argue that removing the underline is a legitimate solution. But I disagree with setting &lt;code&gt;text-decoration: none&lt;/code&gt; because&lt;/p&gt;&lt;ul&gt;&lt;li&gt;the &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; element should be different from the link with a button appearance;&lt;/li&gt;&lt;li&gt;the &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; element does not have an underline; and&lt;/li&gt;&lt;li&gt;in Windows High Contrast Mode, every link does not have an underline.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Again, &lt;strong&gt;color is not enough&lt;/strong&gt;. If links do not have an underline, they fail to pass SC 1.4.1 Use of Color.&lt;/p&gt;&lt;p&gt;Instead, I do the following:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.button {
  text-decoration-color: transparent;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That is much better because:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;all links with button appearance will not have a visible underline;&lt;/li&gt;&lt;li&gt;in Windows High Contrast Mode, every link will have an underline; and&lt;/li&gt;&lt;li&gt;in Windows High Contrast Mode, the &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; and the link with button appearance are different from each other—the &lt;em&gt;real&lt;/em&gt; buttons do not have an underline, while the link buttons have an underline.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To learn more about Windows High Contrast Mode, check out &lt;em&gt;&lt;a href=&quot;https://www.smashingmagazine.com/2022/06/guide-windows-high-contrast-mode/&quot;&gt;The Guide To Windows High Contrast Mode&lt;/a&gt;&lt;/em&gt; by Cristian Diaz.&lt;/p&gt;&lt;p&gt;Now we know that the CSS &lt;code&gt;text-decoration&lt;/code&gt; plays a crucial role in web accessibility. We have the right mindset that &lt;strong&gt;an underline for every link is not just a decoration&lt;/strong&gt;. It is an important property for &lt;a href=&quot;https://vanzasetia.xyz/blog/empty-links/&quot;&gt;links&lt;/a&gt;, especially for inline text links.&lt;/p&gt;</description>
    </item>
    
    
    <item>
      <title>Underestimating HTML Is Bad</title>
      <link>https://vanzasetia.xyz/blog/underestimate-html/</link>
      <dc:creator>Vanza Setia</dc:creator>
      <pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://vanzasetia.xyz/blog/underestimate-html/</guid>
      <description>&lt;p&gt;&lt;a href=&quot;https://www.htmhell.dev/&quot;&gt;HTML Hell&lt;/a&gt; exists to show people that HTML is hard to get right.&lt;/p&gt;&lt;p&gt;You need to understand the effect of your HTML markup. For example, the &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt; element causes some screen readers to say, &amp;quot;break.&amp;quot; It is annoying.&lt;/p&gt;&lt;p&gt;So do not think that you are an HTML expert just because you know the syntax and remember all the HTML elements.&lt;/p&gt;&lt;p&gt;Never underestimate HTML.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>

