Anki Desktop has a hover tooltip, but even with that I just recently discovered that the globe icon next to some options means “Affects the entire collection”.
Adding the icon to the left of the manual text like this 🌎: Affects the entire collection.
might make it more obvious.
Also, AnkiDroid users have no way to tell what the icon means because the tooltip doesn’t exist.
I want to make sure I understand your ask. Are you suggesting the globe be added in the hover text? Or added in the tooltip – which opens when you click on the feature name, the globe, or the tooltip icon? Or when you say “to the left of the manual text” – do you mean adding it to the actual Anki Manual?
The hover text doesn’t trigger on a touchscreen, but the tooltip is the same. You get there in AnkiDroid by clicking any of those same things.
I’ve never seen that. Tapping/clicking the globe icon opens the tooltip window you showed in your screenshot. It’s the same in desktop (25.02), AnkiDroid (2.20.1), and AnkiMobile (25.02.2). What versions are you using?
Adding the globe to the tooltip text is a relatively simple change (as long as we can match the icon exactly) – so I think that will be easy to do. But I’m much more concerned if you’re not getting the tooltip window at all, because (1) you should be, and (2) updating the tooltip window won’t help if you are being skipped past it to the manual.
On desktop, if you only hover over the globe icon (not click), you get the tooltip “Affects the entire collection”. If you click, you get the in-app manual. In AnkiDroid you cannot hover over the icon, only tab (which is the same as the click on desktop). Hence, you get the in-app manual.
We’re just having a terminology conflict here. I’ve never heard anything referred to as the “in-app manual.” We generally call the window that you get in Deck Options when you click the icon the “tooltips” – and you get the same window when you click on the globe or any feature-name.
But let’s see if we can clarify your request without using the word “tooltip” anymore.
Text box that appears over the globe on-hover –
No change requested on desktop.
As for the mobile apps, you’re asking to add this hover text. You can’t “hover” (in the same way) on a touchscreen; it’s just a limitation of the platform. But, any user that wants to know what that means, and can’t hover, is going to end up clicking it – and they’ll get the same window that opens when you click . For users who aren’t interested enough to click (or attempt to hover), they’d never see what you’re proposing to add anyway.
Window that opens when you click – You’re asking to add the globe icon wherever it says “Affects the entire collection.” Seems reasonable to me. If you don’t want to do a PR of your own, I can think of a few people who are likely to take this up when they see it.
That can be added for the globe icon, but I honestly think that only a few people are ever going to notice it. The second option you posted seems to be the best. Sadly, I don’t know how to add that myself.
The difference might be that is an AnkiDroid-implemented screen, so they can implement long-press features as an alternative to hover. Whereas the Deck Options screen is inherited from Anki. But we’ll let the devs sort that out.
I don’t know how ankidroid does this. But it can be done via js in the .svelte files. As a proof of concept, see the following code I found on the internet. You can test it by creating a new basic notetype and pasting this in:
Front
<svg id="longpress_me" width="300" height="200" style="border: 1px solid #ccc;">
<circle cx="150" cy="100" r="50" fill="brown" data-tooltip="Affects the entire collection." />
</svg>
<div id="tooltip"></div>
<script>
var svg = document.getElementById('longpress_me');
var tooltip = document.getElementById('tooltip');
var longpress_timer = null;
var longpress_duration_timer = 500; // ms
var target_element = null;
// Helper to get the correct coordinates
function getEventPosition(e) {
if (e.touches && e.touches.length > 0) {
return { x: e.touches[0].clientX, y: e.touches[0].clientY };
} else {
return { x: e.clientX, y: e.clientY };
}
}
// Show tooltip at position
function showTooltip(pos, text) {
tooltip.style.left = (pos.x + 10) + 'px';
tooltip.style.top = (pos.y + 10) + 'px';
tooltip.textContent = text;
tooltip.style.display = 'block';
}
// Hide tooltip
function hideTooltip() {
tooltip.style.display = 'none';
}
// Common function to handle start (mouse or touch)
function startPress(e) {
// Prevent default to avoid conflicts (like scrolling)
e.preventDefault();
// Check if target is the element we want
var target = e.target.closest('circle');
if (target) {
target_element = target;
longpress_timer = setTimeout(() => {
var pos = getEventPosition(e);
showTooltip(pos, target_element.getAttribute('data-tooltip'));
}, longpress_duration_timer);
}
}
// Common function to handle end
function cancelPress() {
clearTimeout(longpress_timer);
hideTooltip();
}
// Event listeners for touch
svg.addEventListener('touchstart', (e) => {
startPress(e);
});
svg.addEventListener('touchend', () => {
cancelPress();
});
svg.addEventListener('touchmove', () => {
cancelPress();
});
svg.addEventListener('touchcancel', () => {
cancelPress();
});
// Event listeners for mouse
svg.addEventListener('mousedown', (e) => {
startPress(e);
});
svg.addEventListener('mouseup', () => {
cancelPress();
});
svg.addEventListener('mouseleave', () => {
cancelPress();
});
</script>
{{Front}}
It feels out of place, especially at the bottom. Adding the the globe icon to the manual menu is better imo.
Edit: Another option is having a toggle (or 2 tabs) between “global” and “preset specific” options at the top. This has the advantage of making the deck options less cluttered with stuff that is rarely changed.
I would be even happier if there was a space between the globe and the A – but I’ll take it!
Will this add the globe to all of these tooltips that have that text? It looks like there are 4 strings with that language – perhaps some instances are re-using the base deck-config-affects-entire-collection, and others have it added in their own separate text. It would be good if it were uniform – everywhere the globe is in the Options screen (5 places?), the tooltip has it too.
I added a flag that appends the icon to the front of the text if it is set. Its not dependent on the text. I’ll have to manually find all instances of it.