I'm writing a content filtering application that operates at the hardware level. The UI is basically out of the picture once the user starts the filter, as it is hidden in the windows task tray.

As a consequence of the filtering, there are scenarios on almost every single website that the user visits where they will click a link and absolutely nothing will happen. This is because the filter has determined that the network transaction should not be completed, based on various rules.

This can even happen in the middle of an image search, since undesirable results may happen on the second query, rather than the first. Obviously, every person that has beta tested my software thinks something is broken.

I'm struggling to come up with a non-invasive system of notifying the user that action was taken and why. I considered browser extensions, or toast-style popups (this is a desktop application) but the former is invasive and the latter would most certainly get annoying fast. Any suggestions?

  • 2
    If the system knows ahead of time which commands will result in no action, why not disable those commands? Better to prevent user confusion than to explain things afterward. Sep 1, 2015 at 14:39
  • Can you give a few more details on what exactly is going on? Is the filter refusing an action because it would result in 0 hits?
    – tonytrucco
    Sep 1, 2015 at 15:40
  • @KenMohnkern I'm trying to avoid modifying "the service". I could pilfer through the html etc delivered to the end user and remove everything that would be a blocked link, but then I'm transparently modifying the service which might mess up someone elses delivered service and plus there are legal concerns with that.
    – user71831
    Sep 1, 2015 at 16:13
  • @tonytrucco the filter gracefully fails the http transaction as to avoid interrupting user experience as little as possible. So for example a user searches something, but the top 3 are sponsored links that have tracking code attached. The user doesn't know this but has the option enabled to not allow such connections. He clicks, nothing happens, blames me. lol I know it's crazy but even though they installed it, they configured it, this is how they view it: like it's broken, not doing its job. This is the problem I have, they have no feedback.
    – user71831
    Sep 1, 2015 at 16:15
  • I'm still trying to prevent the user from clicking things that don't do anything. Can you add a visual of some sort to the unclickable items? (I avoid clicking any Google results that have their little "Ad" icon.) Sep 1, 2015 at 17:07

3 Answers 3


Animate a symbol such as 🚫 (red circle with line through) floating momentarily from the mouse location.

  • I'm going to give this a shot, great suggestion thanks for posting. It's by far the simplest, non-invasive and most communicative methinks.
    – user71831
    Sep 2, 2015 at 13:13

If you're willing to actually change the HTML, you could change the (hovering) cursor to use the "not allowed" one. You'd have to tweak the styling.

JSFiddle link to a sample behavior here (I'm not sure how to take a screenshot showing the mouse cursor): http://jsfiddle.net/jLwbdoyz/2

Also your filter application could play a warning sound when it blocks something.

  • I like the idea of the sound. I'm looking for subtle ways to notify so the user is neither overwhelmed or annoyed, but not left thinking my program is broken for doing exactly what it's mean to do. :) I was modifying HTML before, but I'm concerned about some legal cases regarding modifying services as well as consequences like adblock plus have dealt with, where there are anti-anti-adblock scripts because their modifications are detectable.
    – user71831
    Sep 2, 2015 at 13:47

When you block the HTTP transaction serve a simple explanation HTML page of your own to the client with an explanation of what your software blocked and why.

  • 1
    Are you suggesting the user is routed off to a separate page every time this happens? Because compared to toast popups that seems more annoying than less, to me.
    – JonW
    Sep 2, 2015 at 14:41
  • @JonW is right, this would be exceptionally annoying. Plus, I'm not operating inside of the browser (not a plugin) so I do not have the context of the browser. Almost every single request, except for direct-typed navigation in the URI box, comes with a referrer attached, so spare the one case, I cannot differentiate between a user action and the browser simply loading a linked resource.
    – user71831
    Sep 2, 2015 at 15:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.