A personal post from Andy

blog.andytriboletti.com/2025/01/13/coincidences-2/

I assert the gov is spying on me under a branch of the Secret Service. Trump goes along with almost anything SS suggests. Why wouldn’t they just hire me instead of hacking my Pixel 6 phone with Pegasus? These days, just monitoring, I think. I think because I inadvertently predict the future, with the post linked being some PG-rated examples.

Hey Facebook, Mark Zuckerberg, thanks for suing the NSO group for hacking!

How do I get an acknowledgement that my phone was hacked, Pixel 6, and other phones I tried during that time, 2020-2022? And a list of the hacked texts sent.

Please, Please, Please. I want it so bad. They were horrific and threatening texts sent from my phone, which I didn’t write or send.

https://www.washingtonpost.com/technology/2025/05/06/nso-pegasus-whatsapp-damages/

I got $250 from a Google settlement. I wish there was a settlement for people who’ve had Pegasus trojan send texts that weren’t written by me, sent cashapp to a person not authorized by me, and even more annoying stuff. Like interrupting a call to my mom with audio she only heard. Weird death threat involving Thursdays from a voicemail transcription with the voice not saying the death stuff. Sending a bumble message not by me to a bizz connection. Rewriting text sms history. Sending tweets not in my name. Offensive and terrible Facebook posts not written by me. Once on a friend’s page. Rewriting at least 1 instagram comment on someone else’s page. Android keyboard grammar checker messing with posts as I wrote them, perfectly spelled words replaced. While I was sleeping sometimes with this stuff. My Mom will vouch she got a disturbing text while I was asleep. With my Pixel 6 a few years ago. Since Pixel 7 and on, no issues.

I heard Pegasus costs 500K per user!

Do you think people employed by the government/secret service are forced to go to mental institutions to evaluate/pick on people? I assert they do. Can we do anything about it?

I agree with Anthropic. Don’t let the US gov build autonomous killing machines or mass surveillance on US citizens. Trump is wrong here.

Trump makes me so angry by saying this:

“The Leftwing nut jobs at Anthropic have made a DISASTROUS MISTAKE trying to STRONG-ARM the Department of War, and force them to obey their Terms of Service instead of our Constitution,” Trump wrote.

Anthropic doesn’t want it’s creation used for autonomous killing machines and for mass surveillance. I agree with Anthropic.

AI killing machines being built by a tech firm and taken over by the government has been done in a lot of movies. We shouldn’t kill. After the tech is good enough I am ok with tasers being used by robots and drones to stop armed force/s. I created https://gunstopperdrone.com

I have been surveiled and hacked. My phone sent messages not authored by me. I am still so upset about it. Not getting confirmation and apology it happened really sucks. It was with my pixel 6 and iphone xr, and even another android device I bought locally. A CIA alleged leaker is in jail now, Joshua Schulte, for leaking that the gov hacked phones to spy on american citizens. US gov shouldnt spy on Americans! I have a page for him. https://joshuaschulte.beepbop.net

I grew up not liking Bush. I guess it’s normal in America to not like your government. This is terrible. Lets get a really good admin in next time.

I read the dept of war killed at least 24, now up to 85 girls in a school today in Iran. That is really sad. It shouldnt have happened. Last time we fought Iran we used a computer virus. Thats much better than this.
https://www.middleeasteye.net/news/least-24-girls-killed-us-strike-elementary-school-southern-iran

A blog post about me being hacked and wanting some apology and to sue with a lawyer
https://blog.greenrobot.com/2025/05/09/a-personal-post-from-andy/

-Andy Triboletti

Google AdSense Is Breaking Web Accessibility — and Nobody’s Talking About It

We recently added WCAG 2 AA accessibility testing to our CI pipeline at GreenRobot Job Search using pa11y. After fixing dozens of real issues in our own code – contrast ratios, missing form labels, empty anchor tags – we got every page on our site to zero accessibility errors.

Then we opened a pull request.

Our GitHub Actions CI pipeline ran pa11y against the live site – and every single page with Google AdSense failed.

The Problem

Google AdSense injects iframes into your page at runtime with no title attribute:

[iframe src="https://www.google.com/recaptcha/api2/aframe"
        width="0" height="0"
        style="display: none;">[/iframe>

[iframe id="google_esf" name="google_esf"
        src="https://googleads.g.doubleclick.net/pagead/html/..."
        style="display: none;">[/iframe>

(note less than sign replaced with [ so it renders code in the blog. gotta fix this one day)

This violates WCAG 2.4.1 (Bypass Blocks) and WCAG 4.1.2 (Name, Role, Value). Every iframe needs a non-empty title attribute so screen reader users can identify its purpose.

The fix would be trivial on Google’s end. Something like:

[iframe title="Google ad services" ...>[/iframe>

That’s it. One attribute.

Why This Matters

If you’re a developer trying to make your site accessible – and you should be – Google’s ad scripts will fail your automated accessibility tests through no fault of your own. You’re left with two options:

  1. Exclude Google’s iframes from your tests (what we had to do)
  2. Remove ads from your site

Neither option is great. The first means you’re sweeping a real accessibility violation under the rug. The second means giving up revenue because a trillion-dollar company couldn’t add a title attribute to an iframe.

Here’s the pa11y ignore rule we had to add to our CI config:

{
  "defaults": {
    "hideElements": "iframe[src*='google'], iframe[src*='doubleclick'], iframe[src*='recaptcha']"
  }
}

We shouldn’t have to do this.

The Bigger Picture

Google has published extensive accessibility guidelines and Chrome DevTools has built-in accessibility auditing via Lighthouse. Google literally built tools to catch this exact problem. Yet their own ad platform ships inaccessible markup to millions of websites.

This isn’t just a Google problem. The entire ad-tech ecosystem largely ignores accessibility. Ad iframes routinely lack titles, ad content rarely meets contrast requirements, and interactive ad elements often aren’t keyboard-navigable. But Google sets the standard. If AdSense shipped accessible markup, the industry would follow.

A Call to Action

To Google: Please add title attributes to the iframes your ad scripts inject. It’s a one-line fix that would instantly improve accessibility across millions of websites.

To ad-tech competitors: There’s a real opportunity here. If you’re building an ad platform that competes with AdSense, ship accessible markup by default. Make it a selling point. As accessibility regulations tighten globally – the European Accessibility Act took effect in June 2025 – publishers will increasingly need ad partners that don’t break their compliance.

To fellow developers: Don’t let third-party scripts be an excuse to skip accessibility testing. Add the ignore rules you need to keep your CI green, but document why those rules exist. File bugs with the offending services. And keep testing the code you can control.

We got our site from 91 accessibility errors down to zero across 16 pages. The only failures left are Google’s, not ours. We’ll keep the ignore rules in place for now, but we’d love nothing more than to remove them.


Andy Triboletti is the founder of GreenRobot. GreenRobot Job Search helps developers find jobs at VC-backed companies. Our codebase is tested with pa11y (WCAG 2 AA), Nu HTML Checker, and Puppeteer console error detection on every pull request.

How to Build Fast-Loading Pages: A Practical Guide (+ New CodeFrog Feature)

Why Page Speed Matters

Page load time directly impacts user experience, SEO rankings, and conversion rates. Google has made Core Web Vitals a ranking factor, and studies consistently show that users abandon pages that take more than 3 seconds to load. Every 100ms of added latency costs measurable engagement.

The single biggest contributor to slow pages? Oversized images and unoptimized resources.

The Problem We Found on Our Own Site

We recently ran our own Mega Report against codefrog.app and discovered our landing page was shipping 3.24 MB of images to users. The breakdown:

  • codefrog-1024-transparent.png – 1.10 MB (hero logo, displayed at 200px)
  • owasp.png – 594 KB (screenshot, 2880×1800 source)
  • githubpr.png – 410 KB (screenshot, 2880×1800 source)
  • megareport.png – 322 KB (screenshot, 2880×1800 source)
  • Plus 4 more oversized screenshots

The hero logo was a 1024×1024 PNG being displayed at a maximum of 200px CSS width. The screenshots were all 2880×1800 retina captures being served at full resolution regardless of display size.

How We Fixed It

1. Right-Size Your Images

Never serve an image larger than it needs to be. If your CSS displays an image at 200px wide, a 512px source is plenty (accounts for 2x retina). If your screenshots display in a grid at ~700px, a 1440px source covers retina displays.

We resized our hero logo from 1024px to 512px and all screenshots from 2880×1800 to 1440×900.

2. Use WebP Format

WebP provides significantly better compression than PNG for photographic and screenshot content, while still supporting transparency. Browser support is now above 97%.

Our results after converting to WebP:

Total page image weight dropped from 3.24 MB to ~248 KB – a 92% reduction.

3. Use the <picture> Element for Fallback

The <picture> element lets you serve WebP to browsers that support it while falling back to PNG for older browsers.

4. Lazy Load Below-the-Fold Images

Add loading="lazy" to any image that isn’t visible in the initial viewport. The browser will defer loading these images until the user scrolls near them, dramatically improving initial page load time.

For your hero/above-the-fold image, use fetchpriority="high" instead to tell the browser to prioritize it.

5. Quick Optimization with Command-Line Tools

You don’t need fancy build pipelines. On macOS, you can optimize images with tools you already have:

# Resize with sips (built into macOS)
sips -z 900 1440 screenshot.png

# Convert to WebP with ImageMagick
magick screenshot.png -resize 1440x900 -quality 80 screenshot.webp

Common Thresholds for Page Weight

Based on industry best practices, here are reasonable targets:

Metric Good Needs Work Poor
Total page weight < 1.5 MB 1.5 – 3 MB > 3 MB
Single image < 200 KB 200 KB – 500 KB > 500 KB
Single resource < 1 MB 1 – 5 MB > 5 MB
Total images < 1 MB 1 – 3 MB > 3 MB

PNG images over 100 KB are almost always candidates for WebP conversion.

New in CodeFrog: Page Size & Performance Test

We built these insights directly into CodeFrog’s Mega Report. The new Page Size & Performance test, coming in an upcoming release, automatically:

  • Discovers all page resources – images, scripts, stylesheets, fonts, and other assets
  • Measures compressed and uncompressed sizes for each resource
  • Flags oversized resources with severity ratings:
    • Critical: Any single resource over 5 MB, or total page over 10 MB
    • High: Any image over 1 MB, or total page over 5 MB
    • Medium: Any image over 500 KB, or total page over 3 MB
    • Low: Any image over 200 KB, or total page over 1.5 MB
    • Info: PNG images over 100 KB that could benefit from WebP conversion
  • Shows a breakdown by resource type (images, scripts, styles, fonts)
  • Shows compression savings so you can see how much transfer encoding helps
  • Works in Sitemap Mode to audit every page across your entire site

The Page Size test integrates with the existing Mega Report alongside Accessibility, Security, SEO, Meta Tags, and HTML Validation tests. You get a single comprehensive report covering all aspects of your site’s health.

How It Looks

When you run a Mega Report, the Page Size section shows:

  1. Summary card with total page weight, compression savings percentage, resource count, and breakdown by type
  2. Sorted resource list showing every asset on the page, color-coded by size, with file type icons
  3. Severity counts that feed into the overall health score grade (A through F)

Export Support

Page Size results are included in both Markdown and PDF exports, so you can share findings with your team or include them in client reports.

Try It Yourself

The Page Size & Performance test will be available in the next release of CodeFrog for macOS and Windows. In the meantime, you can manually audit your pages using browser DevTools (Network tab, sort by size) or run Lighthouse.

The fastest page is the one that loads the least. Start with your images – they’re almost always the biggest win.


CodeFrog is a developer tool for macOS and Windows that helps you find and fix bugs with comprehensive code analysis, web testing, and GitHub automation. Learn more at codefrog.app.

moes folks in video but my prompt didnt include moes folks

I created a video with ai. I didn’t mention Moes Folks when creating but I used to be on a robot team called moe and it is in video.

MOE #365 US FIRST (Miracle of Engineering) was a high school robot team with a green robot. I own greenrobot.com acquired after. Anyone have other weird stuff happen with AI, specifically Google Gemini video generation veo? I generated this video for my app codefrog. Prompt attached.

https://youtu.be/TWZB1q3iMeU?si=9rPvMgAtzNOHDJWx

Server misconfiguration error corrected

I got an anonymous email this morning. I was still using TLS v1 on greenrobot.com. Using openai and ssllabs I was able to correct the problem in a few minutes, no new packages needed. Just editing a file. I considered using Cloudflare, which I have not used yet, but went with fixing it at the source vs signing up for Cloudflare and reconfiguring DNS at registrar. Would I want to do this kind of Apache work for someone else? Not really, it stressed me out. But also, yeah I’d do it.

Does this impact users at all? I am pretty sure it does not impact any of the users of any of my apps. If you are using very old phones or computers you may no longer be able to connect to some of my apps on greenrobot.com, but anything recent should be fine. Let me know in an email if anything is wrong. andy@greenrobot.com

Thank you for your time reading this.

ADA Web Lawsuit Trends for 2026: What 2025 Filings Reveal | UsableNet, Inc.

https://blog.usablenet.com/ada-web-lawsuit-trends-2026

“These industries share a common complaint. Their websites are the primary way customers access essential services. When core workflows such as purchasing, ordering, booking, or refilling prescriptions are inaccessible, litigation follows quickly.”

I cleaned up some of the accessibility and html validation errors on this site using codefrog.app

It now has a ‘C’ rating for the index page from CodeFrog.app mega report rating. Gotta start somewhere. Email me at andy@greenrobot.com if you’d like me to run a report on your site including security, seo, and accessibility tests. Download for macOS at https://codefrog.app. Windows coming soon.

Happy New Year.

My year of development in 2025

My year of development in 2025. I had a job up until May. Currently working on codefrog.app for Windows and searching for work and people to develop stuff with.

I created a lot of sites and apps using AI (Cursor, CodeRabbit, AugmentCode, Antigravity, Amp)

march
3dtankbattle.com

3dwebgames.com

may
longevity.greenrobot.com

aicareers.greenrobot.com

launchday.greenrobot.com

mentalhealthlawyers.greenrobot.com

remotedevjobs.greenrobot.com

june
robots.greenrobot.com

september
gunstopperdrone.com

game.gunstopperdrone.com

december
codefrog.app

github.com/greenrobotllc/bio-neighbor

Notable accomplishment: Getting CodeFrog.app approved on the App Store and being able to use open-source programs installed on the computer within the app while still sandboxed by utilizing SSH on the localhost. Thank you, Apple, for approving it! I am so grateful!

Unfortunate setback: My loving, kind, good watchdog, Albert, got cancer, and we have an appointment with radiation upcoming in January.